From d3efee2ea15008a294722e3ed04c984a378ee58f Mon Sep 17 00:00:00 2001 From: Andy Hsu Date: Sun, 2 Apr 2023 16:09:27 +0800 Subject: [PATCH] fix(s3): increase `PartSize` if filesize > 50000MB (close #4017) --- drivers/s3/driver.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/s3/driver.go b/drivers/s3/driver.go index 601f5330..9b675c94 100644 --- a/drivers/s3/driver.go +++ b/drivers/s3/driver.go @@ -128,6 +128,9 @@ func (d *S3) Remove(ctx context.Context, obj model.Obj) error { func (d *S3) Put(ctx context.Context, dstDir model.Obj, stream model.FileStreamer, up driver.UpdateProgress) error { uploader := s3manager.NewUploader(d.Session) + if stream.GetSize() > s3manager.MaxUploadParts*s3manager.DefaultUploadPartSize { + uploader.PartSize = stream.GetSize() / (s3manager.MaxUploadParts - 1) + } key := getKey(stdpath.Join(dstDir.GetPath(), stream.GetName()), false) log.Debugln("key:", key) input := &s3manager.UploadInput{