“神秘”;签名;及;“到期”;添加到Django管理静态文件URL的参数
我有一个Django 1.4 webapp,使用“神秘”;签名;及;“到期”;添加到Django管理静态文件URL的参数,django,amazon-web-services,amazon-s3,Django,Amazon Web Services,Amazon S3,我有一个Django 1.4 webapp,使用storages.backends.s3boto.s3botostrage作为文件存储后端,为AWS S3中的静态文件提供服务 除了管理静态文件,一切都正常。在检查管理员页面源代码时,很明显问题来自管理员静态文件URL,例如管理员的base.css样式表: <link rel="stylesheet" type="text/css" href="https://watchdog_staticfiles.s3.amazonaws.com/adm
storages.backends.s3boto.s3botostrage
作为文件存储后端,为AWS S3中的静态文件提供服务
除了管理静态文件,一切都正常。在检查管理员页面源代码时,很明显问题来自管理员静态文件URL,例如管理员的base.css
样式表:
<link rel="stylesheet" type="text/css" href="https://watchdog_staticfiles.s3.amazonaws.com/admin/css/base.css?Signature=sFKzAavHHKYdJQVDGTwwSAyrrjc%3D&Expires=1387824617&AWSAccessKeyId=AKIAJAYZSKEJIVD52OCQ" />
问题是存在签名
、过期
和AWSAccessKeyId
URL参数。有了这些,链接将导致来自AWS的拒绝访问响应。如果没有它们,也就是说,只要转到普通URL,就没有问题(因为文件被设置为公开可读)
这些signature/expires/etc参数没有添加到我的主webapp中的静态URL链接中,只是在admin中
所以我的问题是——它们是从哪里来的,我如何摆脱它们呢?我猜您的前端使用了
{{STATIC\u URL}}
?管理员使用{%static%}
模板标记,所以这可能是difference@sk1p-你说得对!这意味着管理员URL是由s3botostrage
生成的,对吗?研究它为什么会创建无效的URL。我已经检查了我的AWS凭据是否正确。我怀疑是过期了,因为所有东西都工作了很长一段时间,然后无缘无故地坏了——这与过期的东西一致。@sk1p——谜团解决了。我将计算机的日期设置为昨天(出于不相关的原因),这导致s3botostrage
生成从S3的角度来看已经过期的URL。把日期放回今天,就把它修好了。谢谢你给我的线索帮助我解决了这个问题。看看这个: