From 4b3704790039b1ab6548291f606e9f035a15ac6c Mon Sep 17 00:00:00 2001 From: Mikael Finstad Date: Mon, 17 Oct 2022 15:11:39 +0200 Subject: [PATCH] @uppy/companion: add workaround for S3 accelerated endpoints (#4140) * add workaround for accelerate endpoint fixes #4135 * Update packages/@uppy/companion/src/server/s3-client.js Co-authored-by: Antoine du Hamel Co-authored-by: Antoine du Hamel --- .../@uppy/companion/src/server/s3-client.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/@uppy/companion/src/server/s3-client.js b/packages/@uppy/companion/src/server/s3-client.js index d22e64649..f24064002 100644 --- a/packages/@uppy/companion/src/server/s3-client.js +++ b/packages/@uppy/companion/src/server/s3-client.js @@ -20,12 +20,25 @@ module.exports = (companionOptions) => { throw new Error('Found unsupported `providerOptions.s3.awsClientOptions.accessKeyId` or `providerOptions.s3.awsClientOptions.secretAccessKey` configuration. Please use the `providerOptions.s3.key` and `providerOptions.s3.secret` options instead.') } - const s3ClientOptions = { + let s3ClientOptions = { signatureVersion: 'v4', endpoint: s3.endpoint, region: s3.region, - // backwards compat - useAccelerateEndpoint: s3.useAccelerateEndpoint, + } + + if (s3.useAccelerateEndpoint && s3.bucket != null) { + s3ClientOptions = { + ...s3ClientOptions, + useAccelerateEndpoint: true, + s3BucketEndpoint: true, + // This is a workaround for lacking support for useAccelerateEndpoint in createPresignedPost + // See https://github.com/transloadit/uppy/issues/4135#issuecomment-1276450023 + endpoint: `https://${s3.bucket}.s3-accelerate.amazonaws.com/`, + } + } + + s3ClientOptions = { + ...s3ClientOptions, ...rawClientOptions, }