storage

package
v1.15.0-rc2 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2021 License: MIT Imports: 18 Imported by: 27

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrURLNotSupported represents url is not supported
	ErrURLNotSupported = errors.New("url method not supported")
)

Functions

func Clean added in v1.15.0

func Clean(storage ObjectStorage) error

Clean delete all the objects in this storage

func Copy

func Copy(dstStorage ObjectStorage, dstPath string, srcStorage ObjectStorage, srcPath string) (int64, error)

Copy copies a file from source ObjectStorage to dest ObjectStorage

func Init

func Init() error

Init init the stoarge

func IsErrInvalidConfiguration

func IsErrInvalidConfiguration(err error) bool

IsErrInvalidConfiguration checks if an error is an ErrInvalidConfiguration

func RegisterStorageType

func RegisterStorageType(typ Type, fn func(ctx context.Context, cfg interface{}) (ObjectStorage, error))

RegisterStorageType registers a provided storage type with a function to create it

func SaveFrom

func SaveFrom(objStorage ObjectStorage, p string, callback func(w io.Writer) error) error

SaveFrom saves data to the ObjectStorage with path p from the callback

Types

type ErrInvalidConfiguration

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

ErrInvalidConfiguration is called when there is invalid configuration for a storage

func (ErrInvalidConfiguration) Error

func (err ErrInvalidConfiguration) Error() string

type LocalStorage

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

LocalStorage represents a local files storage

func (*LocalStorage) Delete

func (l *LocalStorage) Delete(path string) error

Delete delete a file

func (*LocalStorage) IterateObjects

func (l *LocalStorage) IterateObjects(fn func(path string, obj Object) error) error

IterateObjects iterates across the objects in the local storage

func (*LocalStorage) Open

func (l *LocalStorage) Open(path string) (Object, error)

Open a file

func (*LocalStorage) Save

func (l *LocalStorage) Save(path string, r io.Reader, size int64) (int64, error)

Save a file

func (*LocalStorage) Stat

func (l *LocalStorage) Stat(path string) (os.FileInfo, error)

Stat returns the info of the file

func (*LocalStorage) URL

func (l *LocalStorage) URL(path, name string) (*url.URL, error)

URL gets the redirect URL to a file

type LocalStorageConfig

type LocalStorageConfig struct {
	Path          string `ini:"PATH"`
	TemporaryPath string `ini:"TEMPORARY_PATH"`
}

LocalStorageConfig represents the configuration for a local storage

type Mappable

type Mappable interface {
	MapTo(v interface{}) error
}

Mappable represents an interface that can MapTo another interface

type MinioStorage

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

MinioStorage returns a minio bucket storage

func (*MinioStorage) Delete

func (m *MinioStorage) Delete(path string) error

Delete delete a file

func (*MinioStorage) IterateObjects

func (m *MinioStorage) IterateObjects(fn func(path string, obj Object) error) error

IterateObjects iterates across the objects in the miniostorage

func (*MinioStorage) Open

func (m *MinioStorage) Open(path string) (Object, error)

Open open a file

func (*MinioStorage) Save

func (m *MinioStorage) Save(path string, r io.Reader, size int64) (int64, error)

Save save a file to minio

func (*MinioStorage) Stat

func (m *MinioStorage) Stat(path string) (os.FileInfo, error)

Stat returns the stat information of the object

func (*MinioStorage) URL

func (m *MinioStorage) URL(path, name string) (*url.URL, error)

URL gets the redirect URL to a file. The presigned link is valid for 5 minutes.

type MinioStorageConfig

type MinioStorageConfig struct {
	Endpoint        string `ini:"MINIO_ENDPOINT"`
	AccessKeyID     string `ini:"MINIO_ACCESS_KEY_ID"`
	SecretAccessKey string `ini:"MINIO_SECRET_ACCESS_KEY"`
	Bucket          string `ini:"MINIO_BUCKET"`
	Location        string `ini:"MINIO_LOCATION"`
	BasePath        string `ini:"MINIO_BASE_PATH"`
	UseSSL          bool   `ini:"MINIO_USE_SSL"`
}

MinioStorageConfig represents the configuration for a minio storage

type NewStorageFunc

type NewStorageFunc func(ctx context.Context, cfg interface{}) (ObjectStorage, error)

NewStorageFunc is a function that creates a storage

type Object

type Object interface {
	io.ReadCloser
	io.Seeker
	Stat() (os.FileInfo, error)
}

Object represents the object on the storage

type ObjectStorage

type ObjectStorage interface {
	Open(path string) (Object, error)
	// Save store a object, if size is unknown set -1
	Save(path string, r io.Reader, size int64) (int64, error)
	Stat(path string) (os.FileInfo, error)
	Delete(path string) error
	URL(path, name string) (*url.URL, error)
	IterateObjects(func(path string, obj Object) error) error
}

ObjectStorage represents an object storage to handle a bucket and files

var (
	// Attachments represents attachments storage
	Attachments ObjectStorage

	// LFS represents lfs storage
	LFS ObjectStorage

	// Avatars represents user avatars storage
	Avatars ObjectStorage
	// RepoAvatars represents repository avatars storage
	RepoAvatars ObjectStorage

	// RepoArchives represents repository archives storage
	RepoArchives ObjectStorage
)

func NewLocalStorage

func NewLocalStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error)

NewLocalStorage returns a local files

func NewMinioStorage

func NewMinioStorage(ctx context.Context, cfg interface{}) (ObjectStorage, error)

NewMinioStorage returns a minio storage

func NewStorage

func NewStorage(typStr string, cfg interface{}) (ObjectStorage, error)

NewStorage takes a storage type and some config and returns an ObjectStorage or an error

type Type

type Type string

Type is a type of Storage

const LocalStorageType Type = "local"

LocalStorageType is the type descriptor for local storage

const MinioStorageType Type = "minio"

MinioStorageType is the type descriptor for minio storage

Jump to

Keyboard shortcuts

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