feat: expose learning video health detail
This commit is contained in:
@@ -72,6 +72,20 @@ func (s *Storage) EnsureBucket(ctx context.Context) error {
|
||||
return s.client.MakeBucket(ctx, s.cfg.Bucket, minio.MakeBucketOptions{})
|
||||
}
|
||||
|
||||
func (s *Storage) Check(ctx context.Context) error {
|
||||
if !s.Configured() {
|
||||
return errors.New("storage not configured")
|
||||
}
|
||||
exists, err := s.client.BucketExists(ctx, s.cfg.Bucket)
|
||||
if err != nil {
|
||||
return fmt.Errorf("check bucket: %w", err)
|
||||
}
|
||||
if !exists {
|
||||
return fmt.Errorf("bucket not found: %s", s.cfg.Bucket)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// GenerateKey — путь объекта в bucket'е. Структура: <lesson_id>/<random>.<ext>,
|
||||
// где random — короткий uuid для anti-cache + защита от перезаписи случайно.
|
||||
// При замене видео ставится новый key, старый объект остаётся в MinIO
|
||||
|
||||
Reference in New Issue
Block a user