monorepo/cloud/maplefile-backend/pkg/storage/object/s3/provider.go

21 lines
640 B
Go

package s3
import (
"go.uber.org/zap"
"codeberg.org/mapleopentech/monorepo/cloud/maplefile-backend/config"
)
// ProvideS3ObjectStorageProvider provides an S3 object storage provider for Wire DI
func ProvideS3ObjectStorageProvider(cfg *config.Config, logger *zap.Logger) S3ObjectStorage {
s3Config := NewS3ObjectStorageConfigurationProvider(
cfg.S3.AccessKey,
cfg.S3.SecretKey,
cfg.S3.Endpoint,
cfg.S3.Region,
cfg.S3.BucketName,
false, // isPublicBucket - set to false for security
cfg.S3.UsePathStyle, // true for SeaweedFS/MinIO, false for DO Spaces/AWS S3
)
return NewObjectStorage(s3Config, logger)
}