fix():修改s3为阿里云oss

This commit is contained in:
yuj
2025-12-05 17:33:13 +08:00
parent 88e048f4d1
commit b01cee2fa7
7 changed files with 192 additions and 68 deletions

View File

@@ -83,7 +83,8 @@ type OssConfig struct {
AccessKeyID string `mapstructure:"access_key_id"`
AccessKeySecret string `mapstructure:"access_key_secret"`
Bucket string `mapstructure:"bucket"`
AssumeRoleArn string `mapstructure:"assume_role_arn"`
UploadMaxSize int64 `mapstructure:"upload_max_size"` // 上传文件最大大小(字节)
AssumeRoleArn string `mapstructure:"assume_role_arn"` // AWS S3专用,阿里云不需要
PresignUrlExpire time.Duration `mapstructure:"presign_url_expire"`
}

View File

@@ -39,7 +39,18 @@ func initClient() error {
Credentials: credentials.NewStaticCredentialsProvider(cfg.AccessKeyID, cfg.AccessKeySecret, ""),
}
s3c := s3.NewFromConfig(awsCfg)
// 如果配置了自定义 endpoint (如阿里云 OSS),则设置 endpoint resolver
if cfg.Endpoint != "" {
awsCfg.BaseEndpoint = aws.String("https://" + cfg.Endpoint)
}
// 创建 S3 客户端,使用虚拟主机样式(阿里云 OSS 要求)
s3c := s3.NewFromConfig(awsCfg, func(o *s3.Options) {
// 阿里云 OSS 使用虚拟主机样式: bucket.endpoint/key
// AWS S3 默认也是虚拟主机样式,所以保持 UsePathStyle = false (默认值)
o.UsePathStyle = false
})
c = &s3Client{
client: s3c,
presign: s3.NewPresignClient(s3c),