From e016244abac1139d17cdbb8548748de9bce2e516 Mon Sep 17 00:00:00 2001 From: Hou Xiaoxuan <59465493+Hou-Xiaoxuan@users.noreply.github.com> Date: Thu, 23 Nov 2023 23:20:11 +0800 Subject: [PATCH] fix: remove ACL when set URLPrefix (#2532) --- plugin/storage/s3/s3.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/plugin/storage/s3/s3.go b/plugin/storage/s3/s3.go index 10b05392..d7c2a9d3 100644 --- a/plugin/storage/s3/s3.go +++ b/plugin/storage/s3/s3.go @@ -64,13 +64,17 @@ func NewClient(ctx context.Context, config *Config) (*Client, error) { func (client *Client) UploadFile(ctx context.Context, filename string, fileType string, src io.Reader) (string, error) { uploader := manager.NewUploader(client.Client) - uploadOutput, err := uploader.Upload(ctx, &awss3.PutObjectInput{ + // set ACL according to if user set prefix + obj := awss3.PutObjectInput{ Bucket: aws.String(client.Config.Bucket), Key: aws.String(filename), Body: src, ContentType: aws.String(fileType), - ACL: types.ObjectCannedACL(*aws.String("public-read")), - }) + } + if client.Config.URLPrefix == "" { + obj.ACL = types.ObjectCannedACL(*aws.String("public-read")) + } + uploadOutput, err := uploader.Upload(ctx, &obj) if err != nil { return "", err }