backend/internal/svc/file_storage.go

49 lines
1.6 KiB
Go
Raw Normal View History

2025-11-12 06:50:35 +00:00
package svc
import (
"backend/internal/config"
fileStorageConfig "backend/pkg/fileStorage/config"
fileStorageUC "backend/pkg/fileStorage/domain/usecase"
fileStorageRepo "backend/pkg/fileStorage/repository"
fileStorageUseCase "backend/pkg/fileStorage/usecase"
errs "backend/pkg/library/errors"
)
func MustS3Storage(c *config.Config, logger errs.Logger) fileStorageUC.FileStorageUseCase {
// 初始化 FileStorage 配置
fileStorageConf := &fileStorageConfig.Config{
AmazonS3Settings: struct {
Region string
Bucket string
CloudFrontDomain string
CloudFrontURI string
BucketURI string
AccessKey string
SecretKey string
CloudFrontID string
}{
Region: c.AmazonS3Settings.Region,
Bucket: c.AmazonS3Settings.Bucket,
CloudFrontDomain: c.AmazonS3Settings.CloudFrontDomain,
CloudFrontURI: c.AmazonS3Settings.CloudFrontURI,
BucketURI: c.AmazonS3Settings.BucketURI,
AccessKey: c.AmazonS3Settings.AccessKey,
SecretKey: c.AmazonS3Settings.SecretKey,
CloudFrontID: c.AmazonS3Settings.CloudFrontID,
},
}
// 初始化 FileStorage Repository 和 UseCase
fileStorageRepoInstance := fileStorageRepo.MustAwsS3FileStorageRepo(fileStorageRepo.AwsS3FileStorageRepositoryParam{
Conf: fileStorageConf,
Logger: logger,
})
fileStorageUCInstance := fileStorageUseCase.MustAwsS3FileStorageUseCase(fileStorageUseCase.AwsS3FileStorageUseCaseParam{
Conf: fileStorageConf,
Logger: logger,
Repo: fileStorageRepoInstance,
})
return fileStorageUCInstance
}