aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2021-09-08 16:45:02 +0200
committerChocobozzz <me@florianbigard.com>2021-09-08 16:45:02 +0200
commit1c93ad0778d9bde1ba4caf87f24ecef27a8346a9 (patch)
treea5d91cb9d90ac3486f339b8fb2b2652766bb1a77
parent8a7abfef88b5fc69f8809dcbb511e923597a0163 (diff)
downloadPeerTube-1c93ad0778d9bde1ba4caf87f24ecef27a8346a9.tar.gz
PeerTube-1c93ad0778d9bde1ba4caf87f24ecef27a8346a9.tar.zst
PeerTube-1c93ad0778d9bde1ba4caf87f24ecef27a8346a9.zip
Fix object storage multipart upload
-rw-r--r--server/lib/object-storage/shared/client.ts14
-rw-r--r--server/lib/object-storage/shared/object-storage-helpers.ts2
2 files changed, 15 insertions, 1 deletions
diff --git a/server/lib/object-storage/shared/client.ts b/server/lib/object-storage/shared/client.ts
index c9a614593..85682c492 100644
--- a/server/lib/object-storage/shared/client.ts
+++ b/server/lib/object-storage/shared/client.ts
@@ -29,6 +29,20 @@ function getClient () {
29 : undefined 29 : undefined
30 }) 30 })
31 31
32 // FIXME: https://github.com/aws/aws-sdk-js-v3/issues/2445 workaround
33 s3Client.middlewareStack.add(
34 (next, _context) => (args: any) => {
35 if (typeof args.request?.body === 'string' && args.request.body.includes('CompletedMultipartUpload')) {
36 args.request.body = args.request.body.replace(/CompletedMultipartUpload/g, 'CompleteMultipartUpload')
37 }
38 return next(args)
39 },
40 {
41 step: 'build',
42 priority: 'high'
43 }
44 )
45
32 logger.info('Initialized S3 client %s with region %s.', getEndpoint(), OBJECT_STORAGE.REGION, lTags()) 46 logger.info('Initialized S3 client %s with region %s.', getEndpoint(), OBJECT_STORAGE.REGION, lTags())
33 47
34 return s3Client 48 return s3Client
diff --git a/server/lib/object-storage/shared/object-storage-helpers.ts b/server/lib/object-storage/shared/object-storage-helpers.ts
index b53b94b96..47c37ffda 100644
--- a/server/lib/object-storage/shared/object-storage-helpers.ts
+++ b/server/lib/object-storage/shared/object-storage-helpers.ts
@@ -216,7 +216,7 @@ async function multiPartUpload (options: {
216 216
217 const completeUploadCommand = new CompleteMultipartUploadCommand({ 217 const completeUploadCommand = new CompleteMultipartUploadCommand({
218 Bucket: bucketInfo.BUCKET_NAME, 218 Bucket: bucketInfo.BUCKET_NAME,
219 Key: objectStorageKey, 219 Key: key,
220 UploadId: createResponse.UploadId, 220 UploadId: createResponse.UploadId,
221 MultipartUpload: { Parts: parts } 221 MultipartUpload: { Parts: parts }
222 }) 222 })