diff --git a/backend/s3/s3.go b/backend/s3/s3.go index f468a5147..fc570413b 100644 --- a/backend/s3/s3.go +++ b/backend/s3/s3.go @@ -1462,7 +1462,7 @@ func getClient(ctx context.Context, opt *Options) *http.Client { } // s3Connection makes a connection to s3 -func s3Connection(ctx context.Context, opt *Options) (*s3.S3, *session.Session, error) { +func s3Connection(ctx context.Context, opt *Options, client *http.Client) (*s3.S3, *session.Session, error) { // Make the auth v := credentials.Value{ AccessKeyID: opt.AccessKeyID, @@ -1540,7 +1540,7 @@ func s3Connection(ctx context.Context, opt *Options) (*s3.S3, *session.Session, awsConfig := aws.NewConfig(). WithMaxRetries(0). // Rely on rclone's retry logic WithCredentials(cred). - WithHTTPClient(getClient(ctx, opt)). + WithHTTPClient(client). WithS3ForcePathStyle(opt.ForcePathStyle). WithS3UseAccelerate(opt.UseAccelerateEndpoint). WithS3UsEast1RegionalEndpoint(endpoints.RegionalS3UsEast1Endpoint) @@ -1644,7 +1644,8 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e md5sumBinary := md5.Sum([]byte(opt.SSECustomerKey)) opt.SSECustomerKeyMD5 = base64.StdEncoding.EncodeToString(md5sumBinary[:]) } - c, ses, err := s3Connection(ctx, opt) + srv := getClient(ctx, opt) + c, ses, err := s3Connection(ctx, opt, srv) if err != nil { return nil, err } @@ -1659,7 +1660,7 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e ses: ses, pacer: fs.NewPacer(ctx, pacer.NewS3(pacer.MinSleep(minSleep))), cache: bucket.NewCache(), - srv: getClient(ctx, opt), + srv: srv, pool: pool.New( time.Duration(opt.MemoryPoolFlushTime), int(opt.ChunkSize), @@ -1773,7 +1774,7 @@ func (f *Fs) updateRegionForBucket(bucket string) error { // Make a new session with the new region oldRegion := f.opt.Region f.opt.Region = region - c, ses, err := s3Connection(f.ctx, &f.opt) + c, ses, err := s3Connection(f.ctx, &f.opt, f.srv) if err != nil { return errors.Wrap(err, "creating new session failed") }