storage

package
v1.20.2 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2023 License: MIT Imports: 17 Imported by: 27

Documentation

Index

Constants

This section is empty.

Variables

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

ErrURLNotSupported represents url is 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 *setting.Storage) (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(dirName string, 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 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(dirName string, 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 opens a file

func (*MinioStorage) Save

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

Save saves 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 NewStorageFunc

type NewStorageFunc func(ctx context.Context, cfg *setting.Storage) (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(path string, iterator 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 = uninitializedStorage

	// LFS represents lfs storage
	LFS ObjectStorage = uninitializedStorage

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

	// RepoArchives represents repository archives storage
	RepoArchives ObjectStorage = uninitializedStorage

	// Packages represents packages storage
	Packages ObjectStorage = uninitializedStorage

	// Actions represents actions storage
	Actions ObjectStorage = uninitializedStorage
	// Actions Artifacts represents actions artifacts storage
	ActionsArtifacts ObjectStorage = uninitializedStorage
)

func NewLocalStorage

func NewLocalStorage(ctx context.Context, config *setting.Storage) (ObjectStorage, error)

NewLocalStorage returns a local files

func NewMinioStorage

func NewMinioStorage(ctx context.Context, cfg *setting.Storage) (ObjectStorage, error)

NewMinioStorage returns a minio storage

func NewStorage

func NewStorage(typStr Type, cfg *setting.Storage) (ObjectStorage, error)

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

type Type

type Type = setting.StorageType

Jump to

Keyboard shortcuts

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