S3 and optional use of sts (temporary credentials)


Trying to follow the guide and setup Uppy with S3 and multipart-upload. Using own server and have created the endpoints given in the guide:

But if I dont define “getTemporarySecurityCredentials” (as function or bool), I get an error.
(as AWS S3 | Uppy)

Do I really HAVE to make an STS-endpoint? Can’t I just presigned every part?

Hi, you don’t have to define an STS endpoint so setting it to false is fine. However I would expect the default to be false so you don’t have to explicitly pass it. If you are seeing errors, please create a bug report.

When I remove the function, I get this error:

BTW: Using this example as my starting-point:

Posted as bug: Can't use S3 w/multipart without having to define "getTemporarySecurityCredentials" · Issue #4665 · transloadit/uppy · GitHub

Hey, in this example you have the following condition: Uppy – AWS upload example

if (typeof crypto?.subtle === 'object') {
  // If WebCrypto is available, let's do signing from the client.
  return uppy.getPlugin('myAWSPlugin').createSignedURL(file, options)

Calling createSignedURL only works if you are using STS – because the client cannot create a signed URL without it. If you just want to use the server to sign stuff, you need to remove both getTemporarySecurityCredentials (or set it to false, it’s the same), and remove that condition.

Thanks. That solved my problem. I will now close/cancel the issue.