Are browser-based uploads supported by Spaces?

March 21, 2018 1.3k views
API Development

Amazon S3 supports file uploads into private buckets via HTML forms, direct from the user's browser - without an Authentication header.

This is documented for signature v4

https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-authentication-HTTPPOST.html
https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html

and here for v2:

https://docs.aws.amazon.com/AmazonS3/latest/dev/HTTPPOSTExamples.html
https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingHTTPPOST.html

I am currently using code as described in the last link for S3 and I'm not sure how to migrate it to Spaces.

It is basically a php-backed HTML form where I calculate the policy and signatures on the backend using ajax and then let the user POST direct to S3 with the valid values in order to upload the file. Any help welcome!

2 Answers

Yes

DO Spaces is pretty much compatible with any S3 clients and or apis

  • Thank you - however I've not managed to make this work so far, I always get errors when just replacing endpoint and key/secret on my current scripts. There doesn't seem to be any documentation on this form of authentication / non-REST upload in DO docs!

Hi,

so you can do this on DO, using a different technique:

combine these things:
Use the "Using temporary access credentials" technique from here:
https://medium.com/@ashan.fernando/upload-files-to-aws-s3-using-signed-urls-fa0a0cf489db

and then obvs this stuff server side:
https://developers.digitalocean.com/documentation/v2/#authentication

Have another answer? Share your knowledge.