Fix handling context cancellation during requests to S3

This commit is contained in:
DarthSim
2023-03-31 17:53:21 +03:00
parent 1a9768a2c6
commit 809346d47b

View File

@@ -8,6 +8,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
@@ -69,6 +70,12 @@ func (t transport) RoundTrip(req *http.Request) (resp *http.Response, err error)
s3req.HTTPResponse.Body.Close()
}
if s3err, ok := err.(awserr.Error); ok && s3err.Code() == request.CanceledErrorCode {
if e := s3err.OrigErr(); e != nil {
return nil, e
}
}
if s3err, ok := err.(awserr.RequestFailure); !ok || s3err.StatusCode() < 100 || s3err.StatusCode() == 301 {
return nil, err
} else {