我有一个Django项目设置,S3作为静态文件主机.
settings.py
AWS_STORAGE_BUCKET_NAME = 'project-1'
conn = boto.connect_s3()
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
S3_URL = 'http://project-1.s3.amazonaws.com/'
STATIC_URL = S3_URL
Run Code Online (Sandbox Code Playgroud)
然后我使用模板标记在模板中引用静态文件,如下所示:
<script src="{% static 'js/jquery.payment.js' %}"></script>
Run Code Online (Sandbox Code Playgroud)
这个正确呈现在浏览器中,但URL对他们来说,其他3个参数Signature,Expires和AWSAccessKeyId.后两者对文件没有任何影响,但使用呈现的Signature值访问文件会导致InvalidAccessKeyId错误,并显示消息"您提供的AWS访问密钥ID在我们的记录中不存在".
手动删除Signature参数让我可以正常访问该文件.拿走所有三个参数都很好.取消后两个参数中的任何一个都会导致错误:"查询字符串身份验证需要Signature,Expires和AWSAccessKeyId参数".
亚马逊的S3文档显示,查询字符串身份验证用于允许您访问通常需要身份验证的文件,并且该Expires参数不像我认为的那样与缓存相关.由于看起来这些文件不需要任何身份验证(即我可以在没有URL参数时访问它们),我需要帮助:
Signature值| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |