storage

package
v0.0.0-...-e3c7182 Latest Latest
Warning

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

Go to latest
Published: May 24, 2025 License: AGPL-3.0 Imports: 32 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

Functions

func CleanupStoredImage

func CleanupStoredImage(storedImageRepo StoredImageRepo, storageDefRepo StorageDefRepo) (int, error)

func CleanupStoredImageTask

func CleanupStoredImageTask(lock utils.MutexLock, storedImageRepo StoredImageRepo, storageDefRepo StorageDefRepo) error

func RegisterBackend

func RegisterBackend(name domainmodels.StorageTypeName, backend StorageBackend)

func RunCleanupTask

func RunCleanupTask(lock utils.MutexLock, storedImageRepo StoredImageRepo, storageDefRepo StorageDefRepo, interval time.Duration)

Types

type CleanupConfig

type CleanupConfig struct {
	Enabled  bool
	Interval time.Duration
}

func ReadCleanupConfigFromEnv

func ReadCleanupConfigFromEnv() *CleanupConfig

type DBStorageDefRepo

type DBStorageDefRepo struct {
	db.RepoConn
}

func NewDBStorageDefRepo

func NewDBStorageDefRepo(conn *sql.DB) *DBStorageDefRepo

func (*DBStorageDefRepo) CreateStorageDefinition

func (repo *DBStorageDefRepo) CreateStorageDefinition(storageType string, config string, identifier string, isEnabled bool, priority int64) (*dm.StorageDefinition, error)

func (*DBStorageDefRepo) GetStorageDefinitionById

func (repo *DBStorageDefRepo) GetStorageDefinitionById(id string) (*dm.StorageDefinition, error)

func (*DBStorageDefRepo) GetStorageDefinitionByIdentifier

func (repo *DBStorageDefRepo) GetStorageDefinitionByIdentifier(identifier string) (*dm.StorageDefinition, error)

func (*DBStorageDefRepo) GetStorageDefinitionsByIds

func (repo *DBStorageDefRepo) GetStorageDefinitionsByIds(ids []string) ([]*dm.StorageDefinition, error)

func (*DBStorageDefRepo) ListStorageDefinitions

func (repo *DBStorageDefRepo) ListStorageDefinitions() ([]*dm.StorageDefinition, error)

func (*DBStorageDefRepo) UpdateStorageDefinition

func (repo *DBStorageDefRepo) UpdateStorageDefinition(identifier string, storage_type *string, config *string, isEnabled *bool, priority *int64) (*dm.StorageDefinition, error)

func (*DBStorageDefRepo) WithTransaction

func (repo *DBStorageDefRepo) WithTransaction(tx *sql.Tx) DBStorageDefRepo

type DBStoredImageRepo

type DBStoredImageRepo struct {
	db.RepoConn
}

func NewDBStoredImageRepo

func NewDBStoredImageRepo(conn *sql.DB) *DBStoredImageRepo

func (*DBStoredImageRepo) GetStoredImageByIdentifierAndMimeType

func (repo *DBStoredImageRepo) GetStoredImageByIdentifierAndMimeType(identifier, mime string) ([]*dm.StoredImage, error)

func (*DBStoredImageRepo) GetStoredImageIdsByImageIds

func (repo *DBStoredImageRepo) GetStoredImageIdsByImageIds(imageIds []string) (map[string][]string, error)

func (*DBStoredImageRepo) GetStoredImagesByIds

func (repo *DBStoredImageRepo) GetStoredImagesByIds(ids []string) ([]*dm.StoredImage, error)

func (*DBStoredImageRepo) GetStoredImagesToDelete

func (repo *DBStoredImageRepo) GetStoredImagesToDelete() ([]*dm.StoredImage, error)

func (*DBStoredImageRepo) MarkStoredImagesAsDeleted

func (repo *DBStoredImageRepo) MarkStoredImagesAsDeleted(ids []string) error

func (*DBStoredImageRepo) WithTransaction

func (repo *DBStoredImageRepo) WithTransaction(tx *sql.Tx) DBStoredImageRepo

type FSStorage

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

func (*FSStorage) CheckConnection

func (s *FSStorage) CheckConnection() error

func (*FSStorage) Delete

func (s *FSStorage) Delete(filename string) error

func (*FSStorage) GetMeta

func (s *FSStorage) GetMeta(filename string) FileMeta

func (*FSStorage) GetReader

func (s *FSStorage) GetReader(filename string) io.ReadCloser

func (*FSStorage) Save

func (s *FSStorage) Save(file utils.SeekerReader, filename string, mimeType string) error

type FSStorageBackend

type FSStorageBackend struct {
}

func (*FSStorageBackend) FromJSONConfig

func (s *FSStorageBackend) FromJSONConfig(config []byte) (Storage, error)

func (*FSStorageBackend) ValidateJSONConfig

func (s *FSStorageBackend) ValidateJSONConfig(config []byte) error

type FSStorageConfig

type FSStorageConfig struct {
	MediaRoot string `json:"mediaRoot"`
}

type FileMeta

type FileMeta struct {
	ByteSize    int64
	ContentType string
	ETag        string // This should be quoted
}

func GetMetaCached

func GetMetaCached(storage Storage, storageDefId string, filename string) FileMeta

type InMemoryStorageDefRepo

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

func NewInMemoryStorageDefRepo

func NewInMemoryStorageDefRepo() *InMemoryStorageDefRepo

func (*InMemoryStorageDefRepo) AddStorageDefinition

func (repo *InMemoryStorageDefRepo) AddStorageDefinition(storageDef *dm.StorageDefinition)

func (*InMemoryStorageDefRepo) Clear

func (repo *InMemoryStorageDefRepo) Clear()

func (*InMemoryStorageDefRepo) CreateStorageDefinition

func (repo *InMemoryStorageDefRepo) CreateStorageDefinition(storage_type string, config string, identifier string, isEnabled bool, priority int64) (*dm.StorageDefinition, error)

func (*InMemoryStorageDefRepo) GetStorageDefinitionById

func (repo *InMemoryStorageDefRepo) GetStorageDefinitionById(id string) (*dm.StorageDefinition, error)

func (*InMemoryStorageDefRepo) GetStorageDefinitionByIdentifier

func (repo *InMemoryStorageDefRepo) GetStorageDefinitionByIdentifier(id string) (*dm.StorageDefinition, error)

func (*InMemoryStorageDefRepo) GetStorageDefinitionsByIds

func (repo *InMemoryStorageDefRepo) GetStorageDefinitionsByIds(ids []string) ([]*dm.StorageDefinition, error)

func (*InMemoryStorageDefRepo) ListStorageDefinitions

func (repo *InMemoryStorageDefRepo) ListStorageDefinitions() ([]*dm.StorageDefinition, error)

func (*InMemoryStorageDefRepo) UpdateStorageDefinition

func (repo *InMemoryStorageDefRepo) UpdateStorageDefinition(identifier string, storage_type *string, config *string, isEnabled *bool, priority *int64) (*dm.StorageDefinition, error)

type RootFS

type RootFS interface {
	fs.ReadFileFS
	fs.ReadDirFS
	fs.StatFS
}

type S3Client

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

type S3Storage

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

func (*S3Storage) CheckConnection

func (s *S3Storage) CheckConnection() error

func (*S3Storage) CreateBucket

func (s *S3Storage) CreateBucket(name string) error

func (*S3Storage) Delete

func (s *S3Storage) Delete(filename string) error

func (*S3Storage) GetMeta

func (s *S3Storage) GetMeta(filename string) FileMeta

func (*S3Storage) GetReader

func (s *S3Storage) GetReader(filename string) io.ReadCloser

func (*S3Storage) Save

func (s *S3Storage) Save(file utils.SeekerReader, filename string, mimeType string) error

type S3StorageBackend

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

func (*S3StorageBackend) FromJSONConfig

func (s *S3StorageBackend) FromJSONConfig(config []byte) (Storage, error)

func (*S3StorageBackend) ValidateJSONConfig

func (s *S3StorageBackend) ValidateJSONConfig(config []byte) error

type S3StorageConfig

type S3StorageConfig struct {
	Endpoint string `json:"endpoint"`
	Bucket   string `json:"bucket"`
	Access   string `json:"access"`
	Secret   string `json:"secret"`
}

JSON config of S3 storage

func (S3StorageConfig) Hash

func (conf S3StorageConfig) Hash() uint32

func (S3StorageConfig) ToJSON

func (conf S3StorageConfig) ToJSON() []byte

type Storage

type Storage interface {
	GetReader(filename string) io.ReadCloser
	Save(file utils.SeekerReader, filename string, mimeType string) error
	GetMeta(filename string) FileMeta
	Delete(filename string) error
	CheckConnection() error
}

func GetStorage

func GetStorage(storageDef *domainmodels.StorageDefinition) (Storage, error)

type StorageBackend

type StorageBackend interface {
	FromJSONConfig(jsonConfig []byte) (Storage, error)
	ValidateJSONConfig(jsonConfig []byte) error
}

type StorageConfigDef

type StorageConfigDef struct {
	StorageDefSource StorageDefSource
	StorageDefs      []dm.StorageDefinition
	Conn             *utils.Lazy[*sql.DB]
}

func NewConfStorageConfig

func NewConfStorageConfig(storageDefs []dm.StorageDefinition) *StorageConfigDef

func NewDBStorageConfig

func NewDBStorageConfig(conn *sql.DB) *StorageConfigDef

func (*StorageConfigDef) MakeStorageDefRepo

func (c *StorageConfigDef) MakeStorageDefRepo() StorageDefRepo

type StorageDefRepo

type StorageDefRepo interface {
	GetStorageDefinitionById(id string) (*dm.StorageDefinition, error)
	GetStorageDefinitionsByIds(ids []string) ([]*dm.StorageDefinition, error)
	GetStorageDefinitionByIdentifier(id string) (*dm.StorageDefinition, error)
	// order by priority
	ListStorageDefinitions() ([]*dm.StorageDefinition, error)
	CreateStorageDefinition(storage_type string, config string, identifier string, isEnabled bool, priority int64) (*dm.StorageDefinition, error)
	UpdateStorageDefinition(identifier string, storage_type *string, config *string, isEnabled *bool, priority *int64) (*dm.StorageDefinition, error)
}

type StorageDefSource

type StorageDefSource string
const (
	StorageDefSourceDB   StorageDefSource = "db"
	StorageDefSourceConf StorageDefSource = "conf"
)

type StoredImageRepo

type StoredImageRepo interface {
	GetStoredImageByIdentifierAndMimeType(identifier, mime string) ([]*dm.StoredImage, error)
	GetStoredImagesByIds(ids []string) ([]*dm.StoredImage, error)
	GetStoredImageIdsByImageIds(imageIds []string) (map[string][]string, error)
	GetStoredImagesToDelete() ([]*dm.StoredImage, error)
	MarkStoredImagesAsDeleted(ids []string) error
}

type WebDAVBackend

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

func (*WebDAVBackend) FromJSONConfig

func (b *WebDAVBackend) FromJSONConfig(jsonConfig []byte) (Storage, error)

func (*WebDAVBackend) ValidateJSONConfig

func (b *WebDAVBackend) ValidateJSONConfig(jsonConfig []byte) error

type WebDAVStorage

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

func (*WebDAVStorage) CheckConnection

func (s *WebDAVStorage) CheckConnection() error

func (*WebDAVStorage) Delete

func (s *WebDAVStorage) Delete(filename string) error

func (*WebDAVStorage) GetMeta

func (s *WebDAVStorage) GetMeta(filename string) FileMeta

func (*WebDAVStorage) GetReader

func (s *WebDAVStorage) GetReader(filename string) io.ReadCloser

func (*WebDAVStorage) Save

func (s *WebDAVStorage) Save(file utils.SeekerReader, filename string, mimeType string) error

type WebDAVStorageConfig

type WebDAVStorageConfig struct {
	URL        string `json:"url"`
	Username   string `json:"username"`
	Password   string `json:"password"`
	PathPrefix string `json:"pathPrefix"`
}

func (*WebDAVStorageConfig) Hash

func (c *WebDAVStorageConfig) Hash() uint32

type WritableRootFs

type WritableRootFs struct {
	RootFS
	// contains filtered or unexported fields
}

Jump to

Keyboard shortcuts

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