storage

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Storage

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

func NewStorage

func NewStorage(log *slog.Logger, cfg config.Config) (*Storage, error)

func (*Storage) DownloadBucket added in v1.0.0

func (s *Storage) DownloadBucket(
	ctx context.Context,
	endpoint string,
	id bucket.ID,
	ttl *time.Duration,
) error

DownloadBucket Скачивает бакет id с указанного endpoint ttl - время жизни бакета (оставьте nil, если бакет должен жить бессрочно) Если бакет существует, то его время жизни продлевается на ttl

func (*Storage) DownloadFile added in v0.4.0

func (s *Storage) DownloadFile(
	ctx context.Context,
	endpoint string,
	bucketID bucket.ID,
	file string,
) error

DownloadFile Скачивает файл file в существующий бакет bucketID с указанного endpoint Если файл уже существует, то ничего не происходит

func (*Storage) GetBucket added in v1.0.0

func (s *Storage) GetBucket(
	ctx context.Context,
	id bucket.ID,
	extendTTL *time.Duration,
) (path string, unlock func(), err error)

GetBucket Возвращает абсолютный путь бакета id extendTTL - длительность продления жизни бакета (без надобности оставьте nil) Бакет блокируется в режиме на чтение. Для разблокировки необходимо вызвать unlock() НЕ гарантируется консистентность данных при модификации

func (*Storage) GetBucketMeta added in v1.0.0

func (s *Storage) GetBucketMeta(
	ctx context.Context,
	id bucket.ID) (meta BucketMeta, err error)

GetBucketMeta Возвращает метаинформацию о бакете id

func (*Storage) GetFile added in v1.1.0

func (s *Storage) GetFile(
	ctx context.Context,
	bucketID bucket.ID,
	file string,
	extendTTL *time.Duration,
) (path string, unlock func(), err error)

GetFile Возвращает абсолютный путь бакета bucketID, в котором лежит файл file Бакет и файл блокируются в режиме на чтение. Для разблокировки необходимо вызвать unlock() НЕ гарантируется консистентность данных при модификации

func (*Storage) RemoveBucket added in v1.0.0

func (s *Storage) RemoveBucket(
	ctx context.Context,
	id bucket.ID,
) (err error)

RemoveBucket Удаляет бакет id

func (*Storage) ReserveBucket added in v1.2.0

func (s *Storage) ReserveBucket(
	ctx context.Context,
	id bucket.ID,
	ttl *time.Duration,
) (path string, commit, abort func() error, err error)

ReserveBucket Резервирует бакет id ttl - время жизни бакета (оставьте nil, если бакет должен жить бессрочно) Бакет изначально создаётся во временной директории; path - абсолютный путь временной директории Бакет блокируется в режиме на запись. Для разблокировки необходимо вызвать commit() или abort() При вызове функции commit() бакет перемещается в storage При вызове функции abort() бакет удаляется

func (*Storage) ReserveFile added in v1.2.0

func (s *Storage) ReserveFile(
	ctx context.Context,
	bucketID bucket.ID,
	file string,
) (path string, commit, abort func() error, err error)

ReserveFile Резервирует файл file в существующем бакете bucketID Бакет блокируется в режиме на запись. Для разблокировки необходимо вызвать commit() или abort() Файл резервируется во временной директории; path - абсолютный путь до временной директории При вызове функции commit() файл перемещается в storage При вызове функции abort() файл удаляется

func (*Storage) Shutdown

func (s *Storage) Shutdown()

Jump to

Keyboard shortcuts

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