Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrFileStore is the general error for this package. ErrFileStore = errors.New("file store") // ErrStore is the error with the store by itself. ErrStore = errors.Wrap(ErrFileStore, "store") // ErrVersionsNotAllowed is an error if the store doesn't support file versions. ErrVersionsNotAllowed = errors.Wrap(ErrStore, "versions not allowed") // ErrFileName is an error for invalid file names. ErrFileName = errors.Wrap(ErrFileStore, "file name") // ErrExists is an error if the file already exists. ErrExists = errors.Wrap(ErrFileStore, "exists") // ErrFileIsDir is an error if provided file name is a directory. ErrFileIsDir = errors.Wrap(ErrFileStore, "file is dir") // ErrNotExists is an error when the file doesn't exists. ErrNotExists = errors.Wrap(ErrFileStore, "not exists") // ErrNotOpened is an error if the file is not opened yet and wanted to be read. ErrNotOpened = errors.Wrap(ErrFileStore, "not opened") // ErrAlreadyOpened is an error thrown when the file is already opened. ErrAlreadyOpened = errors.Wrap(ErrFileStore, "already opened") // ErrClosed is an error if the file is already closed. ErrClosed = errors.Wrap(ErrFileStore, "closed") // ErrInternal is an internal error for this package. ErrInternal = errors.Wrap(errors.ErrInternal, "file store") // ErrPermission is an error with the file permissions. ErrPermission = errors.Wrap(ErrFileStore, "permission") )
var MimeTypes = map[string]string{
"css": "text/css",
"html": "text/html",
"txt": "text/plain",
"gif": "image/gif",
"jpeg": "image/jpeg",
"png": "image/png",
"tiff": "image/tiff",
"ico": "image/vnd.microsoft.icon",
"js": "application/javascript",
"json": "application/json",
"xml": "application/xml",
"mp3": "audio/mpeg",
"wma": "audio/x-ms-wma",
"ra": "audio/vnd.rn-realaudio",
"rm": "audio/vnd.rn-realaudio",
"ram": "audio/vnd.rn-realaudio",
"wav": "audio/x-wav",
"mpeg": "video/mpeg",
"mp4": "video/mp4",
"wmv": "video/x-ms-wmv",
"qt": "video/quicktime",
"mov": "video/quicktime",
}
MimeTypes are the file extension well-known mime types.
Functions ¶
func GetMimeType ¶
GetMimeType gets the default mime type for given file extension.
Types ¶
type File ¶
type File interface { // Name returns file name with extension. Name() string // Bucket returns file's bucket. Bucket() string // Directory returns file directory. Directory() string // Version returns file version. Version() string // Parameters obtainable after open. // ModifiedAt is the last modification time. ModifiedAt() time.Time // Size returns byte size of given file. Size() int64 // I/O // // Read functions. // // Open opens the file in an read-only way. Open(ctx context.Context) error // Close after successful read the file needs to be closed. Close(ctx context.Context) error // Read the file content when it is opened. Implements io.Reader Read(data []byte) (int, error) // Write the file content Implements io.Writer. The write is independent of the Open -> Read -> Close cycle. // In order to store the changes the file needs to be put into the store. Write(data []byte) (int, error) }
File is a basic interface for the file abstraction.
type FileOption ¶
type FileOption func(o *FileOptions)
FileOption is function that changes file options.
func FileWithBucket ¶
func FileWithBucket(bucket string) FileOption
FileWithBucket create file with provided bucket.
func FileWithDirectory ¶
func FileWithDirectory(directory string) FileOption
FileWithDirectory create the file with given 'directory'.
type FileOptions ¶
FileOptions are the options file creating new file.
type GetOption ¶
type GetOption func(o *GetOptions)
GetOption is an option function that set get options.
func GetWithBucket ¶
GetWithBucket get file with provided bucket.
func GetWithDirectory ¶
GetWithDirectory sets the get file options with 'directory'.
func GetWithVersion ¶
GetWithVersion gets the file with given version. Used only for get method.
type GetOptions ¶
GetOptions are the options while getting the file.
type ListOption ¶
type ListOption func(o *ListOptions)
ListOption is a function that sets up list options.
func ListWithBucket ¶
func ListWithBucket(bucket string) ListOption
ListWithBucket sets the list bucket filter.
func ListWithExtension ¶
func ListWithExtension(ext string) ListOption
ListWithExtension sets the list extension filter.
func ListWithLimit ¶
func ListWithLimit(limit int) ListOption
ListWithLimit sets the list limit filter.
func ListWithOffset ¶
func ListWithOffset(offset int) ListOption
ListWithOffset sets the list offset filter.
type ListOptions ¶
type ListOptions struct {
// Limit, Offset sets the limit and offset while listing the files.
Limit, Offset int
// Extension is a filter type of the file extension.
Extension string
// Bucket could be used for S3 implementations.
Bucket string
}
ListOptions are the settings while listing the files.
type Metadater ¶
type Metadater interface { Metadata() map[string]interface{} GetMeta(key string) (interface{}, bool) SetMeta(key string, value interface{}) }
Metadater is an interface used
type Model ¶
type Model interface { mapping.Model // BucketField returns golang name for the bucket field. BucketField() string // DirectoryField returns golang name for the directory field. DirectoryField() string // NameField returns golang name for the file name field. NameField() string // VersionField returns golang name for the version field. VersionField() string // ExtensionField returns golang name for the file extension field. ExtensionField() string }
Model is the interface that defines file model.
type PutOption ¶
type PutOption func(o *PutOptions)
PutOption is the function that changes the put options.
func PutWithOverwrite ¶
func PutWithOverwrite() PutOption
PutWithOverwrite is the put option that forces the put to overwrite given file.
type PutOptions ¶
type PutOptions struct { // Overwrite defines if the file with given version should be overwritten by the input. Overwrite bool }
PutOptions are the options used on putting the file.
type Store ¶
type Store interface { // Type returns the name of the file store. Type() string // NewFile creates new file with given name and with provided options. NewFile(ctx context.Context, name string, options ...FileOption) (File, error) // PutFile stores the file created previously. PutFile(ctx context.Context, file File, options ...PutOption) error // GetFile gets the file header with provided name (only file name with extension) and possible options. GetFile(ctx context.Context, name string, options ...GetOption) (File, error) // ListFiles lists the file headers for provided directory with optional filters. ListFiles(ctx context.Context, dir string, options ...ListOption) ([]File, error) // DeleteFile deletes provided file. DeleteFile(ctx context.Context, file File) error }
Store is an interface that allows to execute operation on files.