![](/img/trans.png)
[英]How do you set "Content-Type" when saving to S3 using django-storages with S3boto backend?
[英]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_auth
为False
,仍会设置x-amz-security-token
。
尝试在您的settings.py中添加它
AWS_S3_SECURE_URLS =假
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.