Documentation
¶
Index ¶
- type Storage
- func (s *Storage) DownloadBucket(ctx context.Context, endpoint string, id bucket.ID, ttl *time.Duration) error
- func (s *Storage) DownloadFile(ctx context.Context, endpoint string, bucketID bucket.ID, file string) error
- func (s *Storage) GetBucket(ctx context.Context, id bucket.ID, extendTTL *time.Duration) (path string, unlock func(), err error)
- func (s *Storage) GetBucketMeta(ctx context.Context, id bucket.ID) (meta BucketMeta, err error)
- func (s *Storage) GetFile(ctx context.Context, bucketID bucket.ID, file string, extendTTL *time.Duration) (path string, unlock func(), err error)
- func (s *Storage) RemoveBucket(ctx context.Context, id bucket.ID) (err error)
- func (s *Storage) ReserveBucket(ctx context.Context, id bucket.ID, ttl *time.Duration) (path string, commit, abort func() error, err error)
- func (s *Storage) ReserveFile(ctx context.Context, bucketID bucket.ID, file string) (path string, commit, abort func() error, err error)
- func (s *Storage) Shutdown()
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 (*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
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
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() файл удаляется