AWS S3 presigned urls with boto3 – Signature mismatch


I want to create a presigned url for the objects in my bucket. I use the following python code:

I then send the generated URL to my frontend. On the client I will create an a tag with the generated link and use the click() method on it. This worked fine in other projects but here I only get the error:

Which is strange. The user should have all the necessary rights. Because listing all the files in my bucket works fine.

Can someone point me in the right direction why this isn’t working?


I’m using next.js on the frontend if this is of help.


Had the exact same problem. Studied the AWS docs and wrote the (signature v4) procedure myself. The below is based on

and works perfectly.

I’ve also reported this issue to boto3 peeps:

Leave a Reply