storage

package
v0.0.0-...-7662171 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 1, 2021 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Errors map[int]string = map[int]string{
	10000000: "MapSorage: not found name: %v",
	10000001: "MapSorage: name exists: %v",
	10000002: "File: error: %v",
	10000003: "Mkdir error: path: %v",

	10001000: "Cluster.Create: Lock mutex fail wait",
	10001001: "Cluster.Create: storage type %v is not exists",
	10001002: "Cluster.Create: mount %v is not exists",
}

Errors codes and description

View Source
var StorageFileDoubleSaveType = "file_dbl_save"

StorageFileDoubleSaveType - storage file type with double (folder := homePath + folder)

View Source
var StorageFileDoubleSaveTypeGZip = "file_dbl_save_gzip"

StorageFileDoubleSaveType - storage file type with double (folder := homePath + folder)

View Source
var StorageFileType = "file"

StorageFileType - storage file type (folder := homePath + folder)

View Source
var StorageMAPType = "map"

StorageMAPType - storage map type

Functions

func DeleteIfExists

func DeleteIfExists(ctx context.Context, st Storage, name string) (err *mft.Error)

DeleteIfExists delete file if exists

func GenerateError

func GenerateError(key int, a ...interface{}) *mft.Error

GenerateError -

func GenerateErrorE

func GenerateErrorE(key int, err error, a ...interface{}) *mft.Error

GenerateErrorE -

Types

type CreateFileSorageParams

type CreateFileSorageParams struct {
	Folder string `json:"folder"`
}

CreateFileSorageParams params for create file storage

type DoubleSaveSorage

type DoubleSaveSorage struct {
	// contains filtered or unexported fields
}

DoubleSaveSorage - storage that saves to Map (memory)

func CreateDoubleSaveSorage

func CreateDoubleSaveSorage(storage Storage) *DoubleSaveSorage

CreateDoubleSaveSorage - creates double_save_storage storange

func (*DoubleSaveSorage) Delete

func (s *DoubleSaveSorage) Delete(ctx context.Context, name string) *mft.Error

Delete delete data from storage

func (*DoubleSaveSorage) Exists

func (s *DoubleSaveSorage) Exists(ctx context.Context, name string) (ok bool, err *mft.Error)

Exists name in storage

func (*DoubleSaveSorage) Get

func (s *DoubleSaveSorage) Get(ctx context.Context, name string) (body []byte, err *mft.Error)

Get data from storage

func (*DoubleSaveSorage) MkDirIfNotExists

func (s *DoubleSaveSorage) MkDirIfNotExists(ctx context.Context, name string) *mft.Error

MkDirIfNotExists make directory

func (*DoubleSaveSorage) Rename

func (s *DoubleSaveSorage) Rename(ctx context.Context, oldName string, newName string) *mft.Error

Rename rename file from oldName to newName

func (*DoubleSaveSorage) Save

func (s *DoubleSaveSorage) Save(ctx context.Context, name string, body []byte) *mft.Error

Save write data into storage

type FileSorage

type FileSorage struct {
	FolderPerm os.FileMode
	FilePerm   os.FileMode
	Folder     string
}

FileSorage file on disk profider

func CreateFileSorage

func CreateFileSorage(ctx context.Context, params CreateFileSorageParams) (*FileSorage, *mft.Error)

CreateFileSorage creates simple FileOnDisk with perms 0760 & 0660

func (*FileSorage) Delete

func (s *FileSorage) Delete(ctx context.Context, name string) *mft.Error

Delete delete data from storage

func (*FileSorage) Exists

func (s *FileSorage) Exists(ctx context.Context, name string) (ok bool, err *mft.Error)

Exists name in storage

func (*FileSorage) Get

func (s *FileSorage) Get(ctx context.Context, name string) (body []byte, err *mft.Error)

Get data from storage

func (*FileSorage) MkDirIfNotExists

func (s *FileSorage) MkDirIfNotExists(ctx context.Context, name string) *mft.Error

MkDirIfNotExists make directory

func (*FileSorage) Rename

func (s *FileSorage) Rename(ctx context.Context, oldName string, newName string) *mft.Error

Rename rename file from oldName to newName

func (*FileSorage) Save

func (s *FileSorage) Save(ctx context.Context, name string, body []byte) *mft.Error

Save write data into storage

type Generator

type Generator struct {
	GeneratorInfo GeneratorInfo
	// contains filtered or unexported fields
}

Generator - storage cluster

func CreateGenerator

func CreateGenerator(generatorInfo GeneratorInfo, compressor *compress.Generator) *Generator

CreateGenerator create storage cluster

func (*Generator) AddStorGenerator

func (s *Generator) AddStorGenerator(name string, generator func(ctx context.Context, params Mount, relativePath string) (Storage, *mft.Error))

AddStorGenerator add storage generator

func (*Generator) Create

func (s *Generator) Create(ctx context.Context, mountName string, relativePath string) (Storage, *mft.Error)

Create create new storage

type GeneratorInfo

type GeneratorInfo struct {
	Mounts map[string]Mount `json:"mounts"`
}

type MapSorage

type MapSorage struct {
	// contains filtered or unexported fields
}

MapSorage - storage that saves to Map (memory)

func CreateMapSorage

func CreateMapSorage() *MapSorage

CreateMapSorage - creates map storange

func (*MapSorage) Delete

func (s *MapSorage) Delete(ctx context.Context, name string) *mft.Error

Delete delete data from storage

func (*MapSorage) Exists

func (s *MapSorage) Exists(ctx context.Context, name string) (ok bool, err *mft.Error)

Exists name in storage

func (*MapSorage) Get

func (s *MapSorage) Get(ctx context.Context, name string) (body []byte, err *mft.Error)

Get data from storage

func (*MapSorage) MkDirIfNotExists

func (s *MapSorage) MkDirIfNotExists(ctx context.Context, name string) *mft.Error

MkDirIfNotExists make directory

func (*MapSorage) Rename

func (s *MapSorage) Rename(ctx context.Context, oldName string, newName string) *mft.Error

Rename rename file from oldName to newName

func (*MapSorage) Save

func (s *MapSorage) Save(ctx context.Context, name string, body []byte) *mft.Error

Save write data into storage

type Mount

type Mount struct {
	ProviderType string `json:"provider"`
	HomePath     string `json:"home_path"`

	CompressAlg   string `json:"compress_alg,omitempty"`
	FileExtention string `json:"file_extention,omitempty"`

	Params map[string]string `json:"params"`
}

type Storage

type Storage interface {
	// Exists name in storage
	Exists(ctx context.Context, name string) (ok bool, err *mft.Error)
	// Get data from storage
	Get(ctx context.Context, name string) (body []byte, err *mft.Error)
	// Save write data into storage
	Save(ctx context.Context, name string, body []byte) *mft.Error
	// Delete delete data from storage
	Delete(ctx context.Context, name string) *mft.Error
	// Rename rename file from oldName to newName
	Rename(ctx context.Context, oldName string, newName string) *mft.Error
	// Rename make directory
	MkDirIfNotExists(ctx context.Context, name string) *mft.Error
}

Storage - Save data into storage

type ZipSaveSorage

type ZipSaveSorage struct {
	// contains filtered or unexported fields
}

DoubleSaveSorage - storage that saves to Map (memory)

func CreateZipSaveSorage

func CreateZipSaveSorage(storage Storage, compressor *compress.Generator, alghoritm string, fileExtention string) *ZipSaveSorage

CreateDoubleSaveSorage - creates double_save_storage storange

func (*ZipSaveSorage) Delete

func (s *ZipSaveSorage) Delete(ctx context.Context, name string) *mft.Error

Delete delete data from storage

func (*ZipSaveSorage) Exists

func (s *ZipSaveSorage) Exists(ctx context.Context, name string) (ok bool, err *mft.Error)

Exists name in storage

func (*ZipSaveSorage) Get

func (s *ZipSaveSorage) Get(ctx context.Context, name string) (body []byte, err *mft.Error)

Get data from storage

func (*ZipSaveSorage) MkDirIfNotExists

func (s *ZipSaveSorage) MkDirIfNotExists(ctx context.Context, name string) *mft.Error

MkDirIfNotExists make directory

func (*ZipSaveSorage) Path

func (s *ZipSaveSorage) Path(name string) string

func (*ZipSaveSorage) Rename

func (s *ZipSaveSorage) Rename(ctx context.Context, oldName string, newName string) *mft.Error

Rename rename file from oldName to newName

func (*ZipSaveSorage) Save

func (s *ZipSaveSorage) Save(ctx context.Context, name string, body []byte) (err *mft.Error)

Save write data into storage

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL