Skip to content

Commit b4a0dc6

Browse files
authored
Merge pull request #333 from databacker/bump-aws-sdk
bump s3 sdk to latest
2 parents c25c32e + 69f3744 commit b4a0dc6

File tree

3 files changed

+84
-28
lines changed

3 files changed

+84
-28
lines changed

go.mod

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ module github.com/databacker/mysql-backup
33
go 1.21
44

55
require (
6-
github.com/aws/aws-sdk-go-v2 v1.19.1
7-
github.com/aws/aws-sdk-go-v2/config v1.18.30
8-
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.74
9-
github.com/aws/aws-sdk-go-v2/service/s3 v1.37.1
6+
github.com/aws/aws-sdk-go-v2 v1.30.3
7+
github.com/aws/aws-sdk-go-v2/config v1.27.27
8+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.9
9+
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2
1010
github.com/docker/docker v24.0.9+incompatible
1111
github.com/docker/go-connections v0.4.0
1212
github.com/go-sql-driver/mysql v1.7.1
@@ -22,7 +22,7 @@ require (
2222
)
2323

2424
require (
25-
github.com/aws/aws-sdk-go-v2/credentials v1.13.29
25+
github.com/aws/aws-sdk-go-v2/credentials v1.17.27
2626
github.com/cloudsoda/go-smb2 v0.0.0-20231106205947-b0758ecc4c67
2727
github.com/dsnet/compress v0.0.1
2828
github.com/go-test/deep v1.1.0
@@ -31,20 +31,20 @@ require (
3131
require (
3232
github.com/Microsoft/go-winio v0.6.1 // indirect
3333
github.com/aws/aws-sdk-go v1.44.256 // indirect
34-
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect
35-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.6 // indirect
36-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.36 // indirect
37-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.30 // indirect
38-
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.37 // indirect
39-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.28 // indirect
40-
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 // indirect
41-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.31 // indirect
42-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.30 // indirect
43-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.5 // indirect
44-
github.com/aws/aws-sdk-go-v2/service/sso v1.12.14 // indirect
45-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.14 // indirect
46-
github.com/aws/aws-sdk-go-v2/service/sts v1.20.1 // indirect
47-
github.com/aws/smithy-go v1.13.5 // indirect
34+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 // indirect
35+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 // indirect
36+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 // indirect
37+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 // indirect
38+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
39+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 // indirect
40+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
41+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 // indirect
42+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect
43+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 // indirect
44+
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 // indirect
45+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 // indirect
46+
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 // indirect
47+
github.com/aws/smithy-go v1.20.3 // indirect
4848
github.com/containerd/containerd v1.7.11 // indirect
4949
github.com/davecgh/go-spew v1.1.1 // indirect
5050
github.com/docker/distribution v2.8.2+incompatible // indirect

go.sum

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,42 +16,80 @@ github.com/aws/aws-sdk-go v1.44.256 h1:O8VH+bJqgLDguqkH/xQBFz5o/YheeZqgcOYIgsTVW
1616
github.com/aws/aws-sdk-go v1.44.256/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI=
1717
github.com/aws/aws-sdk-go-v2 v1.19.1 h1:STs0lbbpXu3byTPcnRLghs2DH0yk9qKDo27TyyJSKsM=
1818
github.com/aws/aws-sdk-go-v2 v1.19.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw=
19+
github.com/aws/aws-sdk-go-v2 v1.30.3 h1:jUeBtG0Ih+ZIFH0F4UkmL9w3cSpaMv9tYYDbzILP8dY=
20+
github.com/aws/aws-sdk-go-v2 v1.30.3/go.mod h1:nIQjQVp5sfpQcTc9mPSr1B0PaWK5ByX9MOoDadSN4lc=
1921
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 h1:dK82zF6kkPeCo8J1e+tGx4JdvDIQzj7ygIoLg8WMuGs=
2022
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10/go.mod h1:VeTZetY5KRJLuD/7fkQXMU6Mw7H5m/KP2J5Iy9osMno=
23+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 h1:tW1/Rkad38LA15X4UQtjXZXNKsCgkshC3EbmcUmghTg=
24+
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3/go.mod h1:UbnqO+zjqk3uIt9yCACHJ9IVNhyhOCnYk8yA19SAWrM=
2125
github.com/aws/aws-sdk-go-v2/config v1.18.30 h1:TTAXQIn31qYFUQjkW6siVrRTX1ux+sADZDOe3jsZcMg=
2226
github.com/aws/aws-sdk-go-v2/config v1.18.30/go.mod h1:+YogjT7e/t9JVu/sOnZZgxTge1G+bPNk8zOaI0QIQvE=
27+
github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90=
28+
github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg=
2329
github.com/aws/aws-sdk-go-v2/credentials v1.13.29 h1:KNgCpThGuZyCjq9EuuqoLDenKKMwO/x1Xx01ckDa7VI=
2430
github.com/aws/aws-sdk-go-v2/credentials v1.13.29/go.mod h1:VMq1LcmSEa9qxBlOCYTjVuGJWEEzhGmgL552jQsmhss=
31+
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI=
32+
github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4=
2533
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.6 h1:kortK122LvTU34CGX/F9oJpelXKkEA2j/MW48II+8+8=
2634
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.6/go.mod h1:k7IPHyHNIASI0m0RwOmCjWOTtgG+J0raqwuHH8WhWJE=
35+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw=
36+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU=
2737
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.74 h1:5iIuHdeN3/x3kFBENHgYQl1ZtD+ZhLBXy6IgXflUtSI=
2838
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.11.74/go.mod h1:kBEg7nSM1Dg9tsHX5eoFeJMmO+njnFOwxP0dPuQCEGc=
39+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.9 h1:TC2vjvaAv1VNl9A0rm+SeuBjrzXnrlwk6Yop+gKRi38=
40+
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.17.9/go.mod h1:WPv2FRnkIOoDv/8j2gSUsI4qDc7392w5anFB/I89GZ8=
2941
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.36 h1:kbk81RlPoC6e4co7cQx2FAvH9TgbzxIqCqiosAFiB+w=
3042
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.36/go.mod h1:T8Jsn/uNL/AFOXrVYQ1YQaN1r9gN34JU1855/Lyjv+o=
43+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 h1:SoNJ4RlFEQEbtDcCEt+QG56MY4fm4W8rYirAmq+/DdU=
44+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15/go.mod h1:U9ke74k1n2bf+RIgoX1SXFed1HLs51OgUSs+Ph0KJP8=
3145
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.30 h1:lMl8S5SB8jNCB+Sty2Em4lnu3IJytceHQd7qbmfqKL0=
3246
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.30/go.mod h1:v3GSCnFxbHzt9dlWBqvA1K1f9lmWuf4ztupZBCAIVs4=
47+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 h1:C6WHdGnTDIYETAm5iErQUiVNsclNx9qbJVPIt03B6bI=
48+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15/go.mod h1:ZQLZqhcu+JhSrA9/NXRm8SkDvsycE+JkV3WGY41e+IM=
3349
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.37 h1:BXiqvN7WuV/pMhz8CivhO8cG8icJcjnjHumif4ukQ0c=
3450
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.37/go.mod h1:d4GZ62cjnz/hjKFdAu11gAwK73bdhqaFv2O4J1gaqIs=
51+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
52+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
3553
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.28 h1:mGA+qm0tiLaZ04PfQtxthU3XTZ1sN44YlqVjd+1E+Pk=
3654
github.com/aws/aws-sdk-go-v2/internal/v4a v1.0.28/go.mod h1:KkWH+0gAmvloVXaVjdY6/LLwQV6TjYOZ1j5JdVm+XBc=
55+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15 h1:Z5r7SycxmSllHYmaAZPpmN8GviDrSGhMS6bldqtXZPw=
56+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.15/go.mod h1:CetW7bDE00QoGEmPUoZuRog07SGVAUVW6LFpNP0YfIg=
3757
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11 h1:y2+VQzC6Zh2ojtV2LoC0MNwHWc6qXv/j2vrQtlftkdA=
3858
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.9.11/go.mod h1:iV4q2hsqtNECrfmlXyord9u4zyuFEJX9eLgLpSPzWA8=
59+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8=
60+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI=
3961
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.31 h1:TGjmYwqqE6dMDSUSyQNct4MyTAgz95bPnDAjBOEgwOI=
4062
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.1.31/go.mod h1:HvfQ61vGBanxBijrBIpyG32mS9w6fsPZa+BwtV1uQUY=
63+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17 h1:YPYe6ZmvUfDDDELqEKtAd6bo8zxhkm+XEFEzQisqUIE=
64+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.17/go.mod h1:oBtcnYua/CgzCWYN7NZ5j7PotFDaFSUjCYVTtfyn7vw=
4165
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.30 h1:UcVZxLVNY4yayCmiG94Ge3l2qbc5WEB/oa4RmjoQEi0=
4266
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.30/go.mod h1:wPffyJiWWtHwvpFyn23WjAjVjMnlQOQrl02+vutBh3Y=
67+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE=
68+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17/go.mod h1:RkZEx4l0EHYDJpWppMJ3nD9wZJAa8/0lq9aVC+r2UII=
4369
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.5 h1:B90htdoSv7OMH6QzzZ9cuZUoXVwFml0fTCDOpcGakCw=
4470
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.14.5/go.mod h1:fdxqVm1S6xQa6obwHysh1GPowmyqO2pQuaRPWdyG2iQ=
71+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15 h1:246A4lSTXWJw/rmlQI+TT2OcqeDMKBdyjEQrafMaQdA=
72+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.15/go.mod h1:haVfg3761/WF7YPuJOER2MP0k4UAXyHaLclKXB6usDg=
4573
github.com/aws/aws-sdk-go-v2/service/s3 v1.37.1 h1:OoFnDN7ZixctMX/Do4DgQXFvjtzQynz0p0ErQrOCeAs=
4674
github.com/aws/aws-sdk-go-v2/service/s3 v1.37.1/go.mod h1:fBgi8xY80Fv2EveXOoTM008OhKdjrxxtVH0w0h0ozYU=
75+
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2 h1:sZXIzO38GZOU+O0C+INqbH7C2yALwfMWpd64tONS/NE=
76+
github.com/aws/aws-sdk-go-v2/service/s3 v1.58.2/go.mod h1:Lcxzg5rojyVPU/0eFwLtcyTaek/6Mtic5B1gJo7e/zE=
4777
github.com/aws/aws-sdk-go-v2/service/sso v1.12.14 h1:gUjz7trfz9qBm0AlkKTvJHBXELi1wvw+2LA9GfD2AsM=
4878
github.com/aws/aws-sdk-go-v2/service/sso v1.12.14/go.mod h1:9kfRdJgLCbnyeqZ/DpaSwcgj9ZDYLfRpe8Sze+NrYfQ=
79+
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 h1:BXx0ZIxvrJdSgSvKTZ+yRBeSqqgPM89VPlulEcl37tM=
80+
github.com/aws/aws-sdk-go-v2/service/sso v1.22.4/go.mod h1:ooyCOXjvJEsUw7x+ZDHeISPMhtwI3ZCB7ggFMcFfWLU=
4981
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.14 h1:8bEtxV5UT9ucdWGXfZ7CM3caQhSHGjWnTHt0OeF7m7s=
5082
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.14/go.mod h1:nd9BG2UnexN2sDx/mk2Jd6pf3d2E61AiA8m8Fdvdx8Y=
83+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 h1:yiwVzJW2ZxZTurVbYWA7QOrAaCYQR72t0wrSBfoesUE=
84+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4/go.mod h1:0oxfLkpz3rQ/CHlx5hB7H69YUpFiI1tql6Q6Ne+1bCw=
5185
github.com/aws/aws-sdk-go-v2/service/sts v1.20.1 h1:U7h9CPoyMfVoN5jUglB0LglCMP10AK4vMBsbsCKM8Yw=
5286
github.com/aws/aws-sdk-go-v2/service/sts v1.20.1/go.mod h1:BUHusg4cOA1TFGegj7x8/eoWrbdHzJfoMrXcbMQAG0k=
87+
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 h1:ZsDKRLXGWHk8WdtyYMoGNO7bTudrvuKpDKgMVRlepGE=
88+
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3/go.mod h1:zwySh8fpFyXp9yOr/KVzxOl8SRqgf/IDw5aUt9UKFcQ=
5389
github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8=
5490
github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
91+
github.com/aws/smithy-go v1.20.3 h1:ryHwveWzPV5BIof6fyDvor6V3iUL7nTfiTKXHiW05nE=
92+
github.com/aws/smithy-go v1.20.3/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
5593
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
5694
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
5795
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=

pkg/storage/s3/s3.go

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414
"github.com/aws/aws-sdk-go-v2/credentials"
1515
"github.com/aws/aws-sdk-go-v2/feature/s3/manager"
1616
"github.com/aws/aws-sdk-go-v2/service/s3"
17+
smithyendpoints "github.com/aws/smithy-go/endpoints"
1718
log "github.com/sirupsen/logrus"
1819
)
1920

@@ -151,7 +152,7 @@ func (s *S3) ReadDir(dirname string, logger *log.Entry) ([]fs.FileInfo, error) {
151152
files = append(files, &s3FileInfo{
152153
name: *item.Key,
153154
lastModified: *item.LastModified,
154-
size: item.Size,
155+
size: *item.Size,
155156
})
156157
}
157158

@@ -179,15 +180,14 @@ func (s *S3) Remove(target string, logger *log.Entry) error {
179180

180181
func (s *S3) getClient(logger *log.Entry) (*s3.Client, error) {
181182
// Get the AWS config
182-
var opts []func(*config.LoadOptions) error
183+
var (
184+
opts []func(*config.LoadOptions) error // global client options
185+
s3opts []func(*s3.Options) // s3 client options
186+
)
183187
if s.endpoint != "" {
184188
cleanEndpoint := getEndpoint(s.endpoint)
185-
opts = append(opts,
186-
config.WithEndpointResolverWithOptions(
187-
aws.EndpointResolverWithOptionsFunc(func(service, region string, options ...interface{}) (aws.Endpoint, error) {
188-
return aws.Endpoint{URL: cleanEndpoint}, nil
189-
}),
190-
),
189+
s3opts = append(s3opts,
190+
s3.WithEndpointResolverV2(&staticResolver{endpoint: cleanEndpoint}),
191191
)
192192
}
193193
if logger.Level == log.TraceLevel {
@@ -211,7 +211,7 @@ func (s *S3) getClient(logger *log.Entry) (*s3.Client, error) {
211211
}
212212

213213
// Create a new S3 service client
214-
return s3.NewFromConfig(cfg), nil
214+
return s3.NewFromConfig(cfg, s3opts...), nil
215215
}
216216

217217
// getEndpoint returns a clean (for AWS client) endpoint. Normally, this is unchanged,
@@ -233,6 +233,24 @@ func getEndpoint(endpoint string) string {
233233
return e
234234
}
235235

236+
// endpointResolver is a custom endpoint resolver that always returns the same endpoint.
237+
type staticResolver struct {
238+
endpoint string
239+
}
240+
241+
func (s *staticResolver) ResolveEndpoint(ctx context.Context, params s3.EndpointParameters) (
242+
smithyendpoints.Endpoint, error,
243+
) {
244+
// This value will be used as-is when making the request.
245+
u, err := url.Parse(s.endpoint)
246+
if err != nil {
247+
return smithyendpoints.Endpoint{}, err
248+
}
249+
return smithyendpoints.Endpoint{
250+
URI: *u,
251+
}, nil
252+
}
253+
236254
type s3FileInfo struct {
237255
name string
238256
lastModified time.Time

0 commit comments

Comments
 (0)