gpt4 book ai didi

django - S3 托管/查询字符串身份验证因额外参数而中断

转载 作者:行者123 更新时间:2023-12-04 23:03:23 25 4
gpt4 key购买 nike

我有一个使用 S3 作为静态文件主机的 Django 项目设置。
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

然后我使用模板标记引用模板中的静态文件,如下所示:
<script src="{% static 'js/jquery.payment.js' %}"></script>

这在浏览器中正确呈现,但 URL 上还有 3 个其他参数, Signature , Expires , 和 AWSAccessKeyId .后两者对文件没有任何影响,但使用渲染的 Signature 访问文件value 会导致 InvalidAccessKeyId 错误,并显示消息“您提供的 AWS 访问 key ID 在我们的记录中不存在”。

手动带走 Signature参数让我可以很好地访问文件。去掉所有三个参数就可以了。去掉后两个参数中的任何一个都会导致错误:“查询字符串身份验证需要签名、过期和 AWSAccessKeyId 参数”。

Amazon's S3 documentation显示查询字符串身份验证用于允许您访问通常需要身份验证的文件,并且 Expires参数并不像我想象的那样与缓存有关。由于这些文件似乎不需要任何身份验证(即当没有 URL 参数时我可以访问它们),我需要帮助:
  • 制作静态文件/boto 不会在我的网址上强制使用这些参数
  • 使 staticfiles/boto 获得有效的 Signature值(value)
  • 最佳答案

    套装AWS_QUERYSTRING_AUTH = False .

    关于django - S3 托管/查询字符串身份验证因额外参数而中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17500380/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com