From 9f5b676f47a729caa6f962796561e1f41ae21fb9 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Tue, 27 Feb 2024 06:14:27 -0500 Subject: [PATCH] refactor: use S3MultipartUpload if greater than S3_MULTIPART_MIN_PART_SIZE --- api/s5/s5.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/api/s5/s5.go b/api/s5/s5.go index efc231a..6ebb7e0 100644 --- a/api/s5/s5.go +++ b/api/s5/s5.go @@ -1678,14 +1678,23 @@ func (s *S5API) pinImportCronJob(cid string, url string, proofUrl string, userId }(verifier) - _, err = client.PutObject(ctx, &s3.PutObjectInput{ - Bucket: aws.String(s.config.Config().Core.Storage.S3.BufferBucket), - Key: aws.String(cid), - Body: verifier, - ContentLength: aws.Int64(int64(parsedCid.Size)), - }) - if err != nil { - return err + if parsedCid.Size < storage.S3_MULTIPART_MIN_PART_SIZE { + _, err = client.PutObject(ctx, &s3.PutObjectInput{ + Bucket: aws.String(s.config.Config().Core.Storage.S3.BufferBucket), + Key: aws.String(cid), + Body: verifier, + ContentLength: aws.Int64(int64(parsedCid.Size)), + }) + if err != nil { + s.logger.Error("error uploading object", zap.Error(err)) + return err + } + } else { + err := s.storage.S3MultipartUpload(ctx, verifier, s.config.Config().Core.Storage.S3.BufferBucket, cid, parsedCid.Size) + if err != nil { + s.logger.Error("error uploading object", zap.Error(err)) + return err + } } upload, err := s.storage.UploadObject(ctx, s5.GetStorageProtocol(s.protocol), nil, &renter.MultiPartUploadParams{