如何解决AWS S3将参数添加到签名的URL
我使用django-storages将静态文件和私有文件存储在s3存储桶中。
对于一些文件,我需要在url中传递参数,因为所请求的html文件会使用这些参数生成动态内容。
例如:
https://example-static-bucket.s3.amazonaws.com/static/header.html?name=Example&site=2
使用静态文件,效果很好。
但是,如果我使用django-storages获取私有文件的签名URL并添加参数,则会出现错误:
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
...
</Error>
如何使用django-storages将参数添加到已签名的url中?
解决方法
S3存储静态对象,您不能使用签名的URL对其进行修改。可以将S3对象视为文件系统中的文件:它们具有路径和名称,您可以获取其内容,但是它们是用于数据的哑容器。
类似地,您不能让static / header.html基于调用的参数而变得不同。您可以上传文件,也可以下载文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。