change from creation to exists check
All checks were successful
/ Make image (push) Successful in 1m14s

This commit is contained in:
nquidox 2025-10-15 21:34:32 +03:00
parent 38193e8943
commit 95b75d0067
3 changed files with 9 additions and 16 deletions

View file

@ -32,7 +32,8 @@ func NewHandler(deps Deps) *Handler {
"addr": media, "addr": media,
}).Debug("Merch handler constructor | Media provider") }).Debug("Merch handler constructor | Media provider")
if err := media.СreateBucketIfNotExists(packageBucketName); err != nil { exists, err := media.CheckBucketExists(packageBucketName)
if err != nil || !exists {
log.WithError(err).Fatal("Merch handler constructor | Failed to ensure bucket exists") log.WithError(err).Fatal("Merch handler constructor | Failed to ensure bucket exists")
} }

View file

@ -8,7 +8,7 @@ import (
) )
type MediaStorage interface { type MediaStorage interface {
СreateBucketIfNotExists(bucketName string) error CheckBucketExists(bucketName string) (bool, error)
Upload(ctx context.Context, bucket, object string, reader io.Reader, size int64) error Upload(ctx context.Context, bucket, object string, reader io.Reader, size int64) error
Get(ctx context.Context, bucket, object string, expires time.Duration, params url.Values) (*url.URL, error) Get(ctx context.Context, bucket, object string, expires time.Duration, params url.Values) (*url.URL, error)
Delete(ctx context.Context, bucket, object string) error Delete(ctx context.Context, bucket, object string) error

View file

@ -2,8 +2,6 @@ package mediaStorage
import ( import (
"context" "context"
"errors"
"fmt"
"github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"io" "io"
@ -21,21 +19,15 @@ func newService(client *minio.Client) *Service {
} }
} }
func (s *Service) СreateBucketIfNotExists(bucketName string) error { func (s *Service) CheckBucketExists(bucketName string) (bool, error) {
ctx := context.Background() ctx := context.Background()
err := s.client.MakeBucket(ctx, bucketName, minio.MakeBucketOptions{}) exists, err := s.client.BucketExists(ctx, bucketName)
if err != nil { if err != nil {
var minioErr minio.ErrorResponse log.WithError(err).Fatal("Media storage | Failed to check bucket existence")
if errors.As(err, &minioErr) { return exists, err
if minioErr.Code == "BucketAlreadyExists" || minioErr.Code == "BucketAlreadyOwnedByYou" {
log.Infof("Media storage | Bucket %s already exists, skipping creation", bucketName)
return nil
}
}
return fmt.Errorf("failed to create bucket: %w", err)
} }
log.Infof("Media storage | Bucket %s created successfully", bucketName) log.Infof("Media storage | Bucket %s exists", bucketName)
return nil return exists, nil
} }
func (s *Service) Upload(ctx context.Context, bucket, object string, reader io.Reader, size int64) error { func (s *Service) Upload(ctx context.Context, bucket, object string, reader io.Reader, size int64) error {