Question

Getting SignatureDoesNotMatch with DigitalOcean spaces

Posted December 9, 2017 2.6k views
DjangoUbuntu 16.04Object Storage

I was thinking of migrating from amazon s3 to do spaces, so I tried to follow the tutorial to see if everything works correctly first (https://www.digitalocean.com/community/tutorials/how-to-set-up-object-storage-with-django).
I am getting a 403 Forbidden on all static files requests.
Here the complete response:

<Error>  
<Code>SignatureDoesNotMatch</Code>  
<RequestId>tx000000000000012168f55-005a2bfa78-ae42-ams3a</RequestId>  
<HostId>ae42-ams3a-ams3</HostId>  
</Error>

I think it could be something related to the querystring parameters:

X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20171209T145755Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=3QGXL2PSTPREVDKT3AJG/20171209/eu-central-1/s3/aws4_request&X-Amz-Signature=7cbb313fc375d42efc60fcdc5a55ed4da1c4f168b440581145733b82e9cb6a29

The settings.py file is identical except for AWS_S3_ENDPOINT_URL = 'https://nyc3.digitaloceanspaces.com' setting, which in my case is AWS_S3_ENDPOINT_URL = 'https://ams3.digitaloceanspaces.com'
Any hints?

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

Nvm, I found this ticket https://github.com/jschneier/django-storages/issues/395 which explains the correct usage.

  • Hey what did u do to fix this error?
    i am having the same error, having a difficult time finding the exact problem. I have gone through the github link but no luck even with setting signature version.

Add this line on settings.py

AWS_S3_SIGNATURE_VERSION = 's3v4'
Submit an Answer