繁体   English   中英

使用django-storages和s3boto后端:附加了x-amz-security-token我不想要的

[英]Using django-storages and the s3boto backend: x-amz-security-token is appended which I do not want

我正在使用django-storages从s3提供静态内容。 使用boto 2.5.X时,此方法工作正常。 但是,当我使用boto> = 2.6时,指向s3媒体的url混乱了; 附加了一个额外的变量。 区别在于x-amz-security-token被附加了(我不想要)。 无法通过URL访问该媒体。

在我的settings.py中,我使用

AWS_QUERYSTRING_AUTH = False

错误的网址:

https://mybucket.s3.amazonaws.com/static/style/css/layout.min.css?x-amz-security-token=AQoDYXdzEKj/76aRNkwEaoALUm866M8Z6Kc4aF/76aRNkjDcT70xSVB58kR%2BONYLf7y1z1pgqUX7fPRXVQjP9DYOZzcVdHCV27zybD/iPYT2C6rCEnvkQvhcq....

有什么建议么?

我有更好的工作基于django-storages(版本1.1.8)

 AWS_S3_CUSTOM_DOMAIN = 'mybucket.s3.amazonaws.com'

这避免了django-storage调用boto的generate_url而只是将资源的路径拼接在一起。 如果您想使用身份验证获取静态文件,则此方法将无效。

对于好奇:

我网站的某些部分上的静态文件有效,而其他部分(如管理员)则无法工作。 这与两者之间的差异有关

{% load static %}

{% load staticfiles %}

两者都定义了一个块标记{% static %} ,但是它们做不同的事情。 静态文件中的一个只是在{{STATIC_URL}}的前面加上,而静态文件中的一个则使用存储的url方法来获取文件的url。 Django管理的{% static %}从块admin_static行为像staticfiles一个,使用存储。

通过更改为使用{% load staticfiles %}AWS_QUERYSTRING_AUTH = False和/或AWS_S3_SECURE_URLS = False时,我的网站到处都被破坏了。 这表明问题基本上在boto generate_url ,当querystring_authFalse ,仍会设置x-amz-security-token

尝试在您的settings.py中添加它

AWS_S3_SECURE_URLS =假

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM