如何在 Django 存储中设置 AWS S3 对象永不过期?

tsa*_*eht 4 timeout amazon-s3 django-storage boto3

我正在使用django-storage(内部使用 Boto3)上传图像。我能够成功地做到这一点,我得到的返回 URL 是这种格式:

https://.s3.amazonaws.com/foo.jpg?Signature=&AWSAccessKeyId=&Expires=1513089114

其中还填写了 Signature 和 AWSAccessKeyId。

现在,我需要将这个 URL 直接提供给移动开发人员,我不能这么晚设置超时。我需要它很多年或可能总是可以访问。这样做的好方法是什么?解决办法是什么

bho*_*bar 8

在浏览django-storages S3 Docs 时,我看到有一个规定

AWS_QUERYSTRING_EXPIRE 哪个国家

生成的 URL 有效的秒数。

因此,如果您希望链接从现在起 5 年内有效,您只需在此处添加相应的秒数,即157784630

所以总而言之,只需在您的 settings.py

AWS_QUERYSTRING_EXPIRE = '157784630'

这对我来说似乎并不是什么好习惯,而更像是一种方便的黑客/解决方法。

  • 这是行不通的。AWS 签名的 URL 的最长生命周期为 7 天([请参阅此问题](/sf/ask/1681001451/))。仅仅因为您可以在“django-storages”中将其设置为 5 年,并不意味着 AWS 会遵守它。 (2认同)