Skip to content

Commit

Permalink
feat: awss3 DownloadFiles use backoff
Browse files Browse the repository at this point in the history
  • Loading branch information
tomtwinkle committed Aug 31, 2023
1 parent 1ce7edc commit efea36e
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
16 changes: 12 additions & 4 deletions aws/awss3/awss3.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ import (
"strings"
"time"

"github.com/cenkalti/backoff/v4"

"github.com/88labs/go-utils/aws/awss3/options/s3list"

"github.com/88labs/go-utils/aws/awss3/options/s3head"
Expand Down Expand Up @@ -326,10 +328,16 @@ func DownloadFiles(ctx context.Context, region awsconfig.Region, bucketName Buck
return nil, err
}
eg.Go(func() error {
if _, err := downloader.Download(ctx, f, &s3.GetObjectInput{
Bucket: bucketName.AWSString(),
Key: s3Key.AWSString(),
}); err != nil {
b := backoff.WithContext(backoff.NewExponentialBackOff(), ctx)
if err := backoff.Retry(func() error {
if _, err := downloader.Download(ctx, f, &s3.GetObjectInput{
Bucket: bucketName.AWSString(),
Key: s3Key.AWSString(),
}); err != nil {
return err
}
return nil
}, b); err != nil {
return err
}
return nil
Expand Down
1 change: 1 addition & 0 deletions aws/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ require (
github.com/aws/aws-sdk-go-v2/service/sso v1.13.5 // indirect
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.5 // indirect
github.com/aws/aws-sdk-go-v2/service/sts v1.21.5 // indirect
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/google/go-cmp v0.5.9 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
Expand Down
2 changes: 2 additions & 0 deletions aws/go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ github.com/aws/smithy-go v1.14.2 h1:MJU9hqBGbvWZdApzpvoF2WAIJDbtjK2NDJSiJP7HblQ=
github.com/aws/smithy-go v1.14.2/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
github.com/bxcodec/faker/v3 v3.8.1 h1:qO/Xq19V6uHt2xujwpaetgKhraGCapqY2CRWGD/SqcM=
github.com/bxcodec/faker/v3 v3.8.1/go.mod h1:DdSDccxF5msjFo5aO4vrobRQ8nIApg8kq3QWPEQD6+o=
github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
Expand Down

0 comments on commit efea36e

Please sign in to comment.