Working with presigned URLs

Depending on the operation you're performing - either an upload or a download - you'll need to take a secondary action after calling the appropriate presigned URL endpoints.

Uploads

After a successful call to the Presigned Upload URL, you'll need to make a call to the URL returned in the response, you can see the example below:

curl --location --request PUT 'https://s3.eu-west-1.amazonaws.com/sandbox-private.getbrass.co/cus_7e9vgjfzdQZTgH8EdYZmry/ca0939f0-3f06-47aa-9d95-7c6bb11d61ce.jpg?x-amz-acl=private&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAYOX7CAIIYQ2GESN7%2F20201226%2Feu-west-1%2Fs3%2Faws4_request&X-Amz-Date=20201226T152912Z&X-Amz-SignedHeaders=host%3Bx-amz-acl&X-Amz-Expires=1800&X-Amz-Signature=f914166df3d0b025e9373d95f67df693a86e7f632d9e183d5401358b9513d07d' \
--header 'Content-Type: image/jpeg' \
--data-binary '@/path/to/file/locally/IMG-20191219-WA0015.jpg'

If you receive a 200 OK response with an empty body, then the request was successful and you can supply the value of the key to whatever endpoint needs the uploaded file.

👍

Successful Upload

Be aware that a successful upload always returns an empty response body but comes with a 200 OK status.

Downloads

In the case of downloads, you should simply send a HTTP GET request to the returned URL.