Skip to content

Commit d6296ab

Browse files
authored
refactor: upgrade aws-sdk-go to v2 for s3 storage (#582)
* refactor: upgrade aws-sdk-go to v2 for s3 storage * test: update golden files
1 parent b1d585f commit d6296ab

File tree

8 files changed

+236
-140
lines changed

8 files changed

+236
-140
lines changed

config/awsconfig/awsconfig.go

Lines changed: 117 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package awsconfig
22

33
import (
4+
"context"
45
"flag"
56

6-
"github.com/aws/aws-sdk-go/aws"
7-
"github.com/aws/aws-sdk-go/aws/credentials"
8-
"github.com/aws/aws-sdk-go/aws/session"
7+
"github.com/aws/aws-sdk-go-v2/aws"
8+
"github.com/aws/aws-sdk-go-v2/config"
9+
"github.com/aws/aws-sdk-go-v2/credentials"
10+
"github.com/aws/aws-sdk-go-v2/service/s3"
911
"github.com/cshum/imagor"
1012
"github.com/cshum/imagor/storage/s3storage"
1113
"go.uber.org/zap"
@@ -100,95 +102,138 @@ func WithAWS(fs *flag.FlagSet, cb func() (*zap.Logger, bool)) imagor.Option {
100102
if *s3StorageBucket == "" && *s3LoaderBucket == "" && *s3ResultStorageBucket == "" {
101103
return
102104
}
103-
var loaderSess, storageSess, resultStorageSess *session.Session
104-
var cred = credentials.NewStaticCredentials(
105-
*awsAccessKeyID, *awsSecretAccessKey, *awsSessionToken)
106-
var options = session.Options{
107-
SharedConfigState: session.SharedConfigEnable,
105+
106+
ctx := context.Background()
107+
108+
// Helper function to create S3 client with custom endpoint
109+
createS3Client := func(cfg aws.Config, endpoint string) *s3.Client {
110+
var options []func(*s3.Options)
111+
112+
if endpoint != "" {
113+
options = append(options, func(o *s3.Options) {
114+
o.BaseEndpoint = aws.String(endpoint)
115+
})
116+
}
117+
118+
if *s3ForcePathStyle {
119+
options = append(options, func(o *s3.Options) {
120+
o.UsePathStyle = true
121+
})
122+
}
123+
124+
return s3.NewFromConfig(cfg, options...)
108125
}
109-
if _, err := cred.Get(); err != nil {
110-
cred = credentials.NewSharedCredentials("", "")
126+
127+
// Create base configuration
128+
var loaderCfg, storageCfg, resultStorageCfg aws.Config
129+
var err error
130+
131+
// Default configuration
132+
defaultCfg, err := config.LoadDefaultConfig(ctx)
133+
if err != nil {
134+
panic(err)
111135
}
112-
if _, err := cred.Get(); err == nil {
113-
options.Config = aws.Config{
114-
Endpoint: s3Endpoint,
115-
Region: awsRegion,
116-
Credentials: cred,
117-
S3ForcePathStyle: s3ForcePathStyle,
118-
}
136+
137+
// Override with explicit credentials if provided
138+
if *awsAccessKeyID != "" && *awsSecretAccessKey != "" {
139+
defaultCfg.Credentials = credentials.NewStaticCredentialsProvider(
140+
*awsAccessKeyID, *awsSecretAccessKey, *awsSessionToken)
119141
}
120-
var sess = session.Must(session.NewSessionWithOptions(options))
121-
loaderSess = sess
122-
storageSess = sess
123-
resultStorageSess = sess
142+
if *awsRegion != "" {
143+
defaultCfg.Region = *awsRegion
144+
}
145+
146+
// Set default configurations
147+
loaderCfg = defaultCfg
148+
storageCfg = defaultCfg
149+
resultStorageCfg = defaultCfg
150+
151+
// Override loader config if specific credentials provided
124152
if *awsLoaderRegion != "" && *awsLoaderAccessKeyID != "" && *awsLoaderSecretAccessKey != "" {
125-
cfg := &aws.Config{
126-
Endpoint: s3LoaderEndpoint,
127-
Region: awsLoaderRegion,
128-
Credentials: credentials.NewStaticCredentials(
153+
loaderCfg = aws.Config{
154+
Region: *awsLoaderRegion,
155+
Credentials: credentials.NewStaticCredentialsProvider(
129156
*awsLoaderAccessKeyID, *awsLoaderSecretAccessKey, *awsLoaderSessionToken),
130-
S3ForcePathStyle: s3ForcePathStyle,
131157
}
132-
// activate AWS Session only if credentials present
133-
loaderSess = session.Must(session.NewSession(cfg))
134158
}
159+
160+
// Override storage config if specific credentials provided
135161
if *awsStorageRegion != "" && *awsStorageAccessKeyID != "" && *awsStorageSecretAccessKey != "" {
136-
cfg := &aws.Config{
137-
Endpoint: s3StorageEndpoint,
138-
Region: awsStorageRegion,
139-
Credentials: credentials.NewStaticCredentials(
162+
storageCfg = aws.Config{
163+
Region: *awsStorageRegion,
164+
Credentials: credentials.NewStaticCredentialsProvider(
140165
*awsStorageAccessKeyID, *awsStorageSecretAccessKey, *awsStorageSessionToken),
141-
S3ForcePathStyle: s3ForcePathStyle,
142166
}
143-
// activate AWS Session only if credentials present
144-
storageSess = session.Must(session.NewSession(cfg))
145167
}
168+
169+
// Override result storage config if specific credentials provided
146170
if *awsResultStorageRegion != "" && *awsResultStorageAccessKeyID != "" && *awsResultStorageSecretAccessKey != "" {
147-
cfg := &aws.Config{
148-
Endpoint: s3ResultStorageEndpoint,
149-
Region: awsResultStorageRegion,
150-
Credentials: credentials.NewStaticCredentials(
171+
resultStorageCfg = aws.Config{
172+
Region: *awsResultStorageRegion,
173+
Credentials: credentials.NewStaticCredentialsProvider(
151174
*awsResultStorageAccessKeyID, *awsResultStorageSecretAccessKey, *awsResultStorageSessionToken),
152-
S3ForcePathStyle: s3ForcePathStyle,
153175
}
154-
// activate AWS Session only if credentials present
155-
resultStorageSess = session.Must(session.NewSession(cfg))
156176
}
157-
if storageSess != nil && *s3StorageBucket != "" {
158-
// activate S3 Storage only if bucket config presents
159-
app.Storages = append(app.Storages,
160-
s3storage.New(storageSess, *s3StorageBucket,
161-
s3storage.WithPathPrefix(*s3StoragePathPrefix),
162-
s3storage.WithBaseDir(*s3StorageBaseDir),
163-
s3storage.WithACL(*s3StorageACL),
164-
s3storage.WithSafeChars(*s3SafeChars),
165-
s3storage.WithExpiration(*s3StorageExpiration),
166-
s3storage.WithStorageClass(*s3StorageClass),
167-
),
177+
178+
// Create S3 Storage instances
179+
if *s3StorageBucket != "" {
180+
// Determine endpoint: service-specific takes priority over global
181+
endpoint := *s3StorageEndpoint
182+
if endpoint == "" {
183+
endpoint = *s3Endpoint
184+
}
185+
186+
storage := s3storage.New(storageCfg, *s3StorageBucket,
187+
s3storage.WithPathPrefix(*s3StoragePathPrefix),
188+
s3storage.WithBaseDir(*s3StorageBaseDir),
189+
s3storage.WithACL(*s3StorageACL),
190+
s3storage.WithSafeChars(*s3SafeChars),
191+
s3storage.WithExpiration(*s3StorageExpiration),
192+
s3storage.WithStorageClass(*s3StorageClass),
168193
)
194+
// Override client with custom endpoint if needed
195+
storage.Client = createS3Client(storageCfg, endpoint)
196+
197+
app.Storages = append(app.Storages, storage)
169198
}
170-
if loaderSess != nil && *s3LoaderBucket != "" {
171-
// activate S3 Loader only if bucket config presents
172-
app.Loaders = append(app.Loaders,
173-
s3storage.New(loaderSess, *s3LoaderBucket,
174-
s3storage.WithPathPrefix(*s3LoaderPathPrefix),
175-
s3storage.WithBaseDir(*s3LoaderBaseDir),
176-
s3storage.WithSafeChars(*s3SafeChars),
177-
),
199+
200+
if *s3LoaderBucket != "" {
201+
// Determine endpoint: service-specific takes priority over global
202+
endpoint := *s3LoaderEndpoint
203+
if endpoint == "" {
204+
endpoint = *s3Endpoint
205+
}
206+
207+
loader := s3storage.New(loaderCfg, *s3LoaderBucket,
208+
s3storage.WithPathPrefix(*s3LoaderPathPrefix),
209+
s3storage.WithBaseDir(*s3LoaderBaseDir),
210+
s3storage.WithSafeChars(*s3SafeChars),
178211
)
212+
// Override client with custom endpoint if needed
213+
loader.Client = createS3Client(loaderCfg, endpoint)
214+
215+
app.Loaders = append(app.Loaders, loader)
179216
}
180-
if resultStorageSess != nil && *s3ResultStorageBucket != "" {
181-
// activate S3 ResultStorage only if bucket config presents
182-
app.ResultStorages = append(app.ResultStorages,
183-
s3storage.New(resultStorageSess, *s3ResultStorageBucket,
184-
s3storage.WithPathPrefix(*s3ResultStoragePathPrefix),
185-
s3storage.WithBaseDir(*s3ResultStorageBaseDir),
186-
s3storage.WithACL(*s3ResultStorageACL),
187-
s3storage.WithSafeChars(*s3SafeChars),
188-
s3storage.WithExpiration(*s3ResultStorageExpiration),
189-
s3storage.WithStorageClass(*s3StorageClass),
190-
),
217+
218+
if *s3ResultStorageBucket != "" {
219+
// Determine endpoint: service-specific takes priority over global
220+
endpoint := *s3ResultStorageEndpoint
221+
if endpoint == "" {
222+
endpoint = *s3Endpoint
223+
}
224+
225+
resultStorage := s3storage.New(resultStorageCfg, *s3ResultStorageBucket,
226+
s3storage.WithPathPrefix(*s3ResultStoragePathPrefix),
227+
s3storage.WithBaseDir(*s3ResultStorageBaseDir),
228+
s3storage.WithACL(*s3ResultStorageACL),
229+
s3storage.WithSafeChars(*s3SafeChars),
230+
s3storage.WithExpiration(*s3ResultStorageExpiration),
231+
s3storage.WithStorageClass(*s3StorageClass),
191232
)
233+
// Override client with custom endpoint if needed
234+
resultStorage.Client = createS3Client(resultStorageCfg, endpoint)
235+
236+
app.ResultStorages = append(app.ResultStorages, resultStorage)
192237
}
193238
}
194239
}

go.mod

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ go 1.24.2
55
require (
66
cloud.google.com/go/storage v1.55.0
77
github.com/TheZeroSlave/zapsentry v1.23.0
8-
github.com/aws/aws-sdk-go v1.55.7
8+
github.com/aws/aws-sdk-go-v2 v1.38.0
9+
github.com/aws/aws-sdk-go-v2/config v1.31.0
10+
github.com/aws/aws-sdk-go-v2/credentials v1.18.4
11+
github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0
912
github.com/cshum/vipsgen v1.1.1
1013
github.com/fsouza/fake-gcs-server v1.52.2
1114
github.com/getsentry/sentry-go v0.34.1
@@ -31,6 +34,21 @@ require (
3134
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
3235
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 // indirect
3336
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
37+
github.com/aws/aws-sdk-go v1.55.7 // indirect
38+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 // indirect
39+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.3 // indirect
40+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 // indirect
41+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 // indirect
42+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 // indirect
43+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 // indirect
44+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 // indirect
45+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 // indirect
46+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 // indirect
47+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 // indirect
48+
github.com/aws/aws-sdk-go-v2/service/sso v1.28.0 // indirect
49+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.0 // indirect
50+
github.com/aws/aws-sdk-go-v2/service/sts v1.37.0 // indirect
51+
github.com/aws/smithy-go v1.22.5 // indirect
3452
github.com/beorn7/perks v1.0.1 // indirect
3553
github.com/cespare/xxhash/v2 v2.3.0 // indirect
3654
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
@@ -48,7 +66,6 @@ require (
4866
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
4967
github.com/gorilla/handlers v1.5.2 // indirect
5068
github.com/gorilla/mux v1.8.1 // indirect
51-
github.com/jmespath/go-jmespath v0.4.0 // indirect
5269
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
5370
github.com/pkg/xattr v0.4.12 // indirect
5471
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect

go.sum

Lines changed: 36 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,42 @@ github.com/TheZeroSlave/zapsentry v1.23.0/go.mod h1:3DRFLu4gIpnCTD4V9HMCBSaqYP8g
3939
github.com/aws/aws-sdk-go v1.44.256/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
4040
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
4141
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
42+
github.com/aws/aws-sdk-go-v2 v1.38.0 h1:UCRQ5mlqcFk9HJDIqENSLR3wiG1VTWlyUfLDEvY7RxU=
43+
github.com/aws/aws-sdk-go-v2 v1.38.0/go.mod h1:9Q0OoGQoboYIAJyslFyF1f5K1Ryddop8gqMhWx/n4Wg=
44+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0 h1:6GMWV6CNpA/6fbFHnoAjrv4+LGfyTqZz2LtCHnspgDg=
45+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.0/go.mod h1:/mXlTIVG9jbxkqDnr5UQNQxW1HRYxeGklkM9vAFeabg=
46+
github.com/aws/aws-sdk-go-v2/config v1.31.0 h1:9yH0xiY5fUnVNLRWO0AtayqwU1ndriZdN78LlhruJR4=
47+
github.com/aws/aws-sdk-go-v2/config v1.31.0/go.mod h1:VeV3K72nXnhbe4EuxxhzsDc/ByrCSlZwUnWH52Nde/I=
48+
github.com/aws/aws-sdk-go-v2/credentials v1.18.4 h1:IPd0Algf1b+Qy9BcDp0sCUcIWdCQPSzDoMK3a8pcbUM=
49+
github.com/aws/aws-sdk-go-v2/credentials v1.18.4/go.mod h1:nwg78FjH2qvsRM1EVZlX9WuGUJOL5od+0qvm0adEzHk=
50+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.3 h1:GicIdnekoJsjq9wqnvyi2elW6CGMSYKhdozE7/Svh78=
51+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.3/go.mod h1:R7BIi6WNC5mc1kfRM7XM/VHC3uRWkjc396sfabq4iOo=
52+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3 h1:o9RnO+YZ4X+kt5Z7Nvcishlz0nksIt2PIzDglLMP0vA=
53+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.3/go.mod h1:+6aLJzOG1fvMOyzIySYjOFjcguGvVRL68R+uoRencN4=
54+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3 h1:joyyUFhiTQQmVK6ImzNU9TQSNRNeD9kOklqTzyk5v6s=
55+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.3/go.mod h1:+vNIyZQP3b3B1tSLI0lxvrU9cfM7gpdRXMFfm67ZcPc=
56+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d2KyU5X/BZxjOkRo=
57+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo=
58+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3 h1:ZV2XK2L3HBq9sCKQiQ/MdhZJppH/rH0vddEAamsHUIs=
59+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.3/go.mod h1:b9F9tk2HdHpbf3xbN7rUZcfmJI26N6NcJu/8OsBFI/0=
60+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0 h1:6+lZi2JeGKtCraAj1rpoZfKqnQ9SptseRZioejfUOLM=
61+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.0/go.mod h1:eb3gfbVIxIoGgJsi9pGne19dhCBpK6opTYpQqAmdy44=
62+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3 h1:3ZKmesYBaFX33czDl6mbrcHb6jeheg6LqjJhQdefhsY=
63+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.8.3/go.mod h1:7ryVb78GLCnjq7cw45N6oUb9REl7/vNUwjvIqC5UgdY=
64+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3 h1:ieRzyHXypu5ByllM7Sp4hC5f/1Fy5wqxqY0yB85hC7s=
65+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.13.3/go.mod h1:O5ROz8jHiOAKAwx179v+7sHMhfobFVi6nZt8DEyiYoM=
66+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3 h1:SE/e52dq9a05RuxzLcjT+S5ZpQobj3ie3UTaSf2NnZc=
67+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.19.3/go.mod h1:zkpvBTsR020VVr8TOrwK2TrUW9pOir28sH5ECHpnAfo=
68+
github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0 h1:egoDf+Geuuntmw79Mz6mk9gGmELCPzg5PFEABOHB+6Y=
69+
github.com/aws/aws-sdk-go-v2/service/s3 v1.87.0/go.mod h1:t9MDi29H+HDbkolTSQtbI0HP9DemAWQzUjmWC7LGMnE=
70+
github.com/aws/aws-sdk-go-v2/service/sso v1.28.0 h1:Mc/MKBf2m4VynyJkABoVEN+QzkfLqGj0aiJuEe7cMeM=
71+
github.com/aws/aws-sdk-go-v2/service/sso v1.28.0/go.mod h1:iS5OmxEcN4QIPXARGhavH7S8kETNL11kym6jhoS7IUQ=
72+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.0 h1:6csaS/aJmqZQbKhi1EyEMM7yBW653Wy/B9hnBofW+sw=
73+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.33.0/go.mod h1:59qHWaY5B+Rs7HGTuVGaC32m0rdpQ68N8QCN3khYiqs=
74+
github.com/aws/aws-sdk-go-v2/service/sts v1.37.0 h1:MG9VFW43M4A8BYeAfaJJZWrroinxeTi2r3+SnmLQfSA=
75+
github.com/aws/aws-sdk-go-v2/service/sts v1.37.0/go.mod h1:JdeBDPgpJfuS6rU/hNglmOigKhyEZtBmbraLE4GK1J8=
76+
github.com/aws/smithy-go v1.22.5 h1:P9ATCXPMb2mPjYBgueqJNCA5S9UfktsW0tTxi+a7eqw=
77+
github.com/aws/smithy-go v1.22.5/go.mod h1:t1ufH5HMublsJYulve2RKmHDC15xu1f26kHCp/HgceI=
4278
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
4379
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
4480
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -132,7 +168,6 @@ github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
132168
github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
133169
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
134170
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
135-
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
136171
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
137172
github.com/johannesboyne/gofakes3 v0.0.0-20250603205740-ed9094be7668 h1:+Mn8Sj5VzjOTuzyBCxfUnEcS+Iky4/5piUraOC3E5qQ=
138173
github.com/johannesboyne/gofakes3 v0.0.0-20250603205740-ed9094be7668/go.mod h1:t6osVdP++3g4v2awHz4+HFccij23BbdT1rX3W7IijqQ=
@@ -351,8 +386,6 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV
351386
gopkg.in/mgo.v2 v2.0.0-20180705113604-9856a29383ce/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA=
352387
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
353388
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
354-
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
355-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
356389
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
357390
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
358391
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

storage/s3storage/option.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"strings"
55
"time"
66

7-
"github.com/aws/aws-sdk-go/service/s3"
7+
"github.com/aws/aws-sdk-go-v2/service/s3/types"
88
)
99

1010
// Option S3Storage option
@@ -38,8 +38,8 @@ func WithPathPrefix(prefix string) Option {
3838

3939
var aclValuesMap = (func() map[string]bool {
4040
m := map[string]bool{}
41-
for _, acl := range s3.ObjectCannedACL_Values() {
42-
m[acl] = true
41+
for _, acl := range types.ObjectCannedACL("").Values() {
42+
m[string(acl)] = true
4343
}
4444
return m
4545
})()
@@ -72,7 +72,7 @@ func WithExpiration(exp time.Duration) Option {
7272
}
7373
}
7474

75-
// WithFileStorageClass with storage storage class option
75+
// WithStorageClass with storage class option
7676
func WithStorageClass(storageClass string) Option {
7777
return func(h *S3Storage) {
7878
allowedStorageClasses := [6]string{"REDUCED_REDUNDANCY", "STANDARD_IA", "ONEZONE_IA",

0 commit comments

Comments
 (0)