【发布时间】:2023-04-01 11:55:01
【问题描述】:
我正在使用django-storage(内部使用 Boto3)上传图片。我成功地这样做了,我得到的返回 URL 是这种格式:
https://.s3.amazonaws.com/foo.jpg?Signature=&AWSAccessKeyId=&Expires=1513089114
其中 Signature 和 AWSAccessKeyId 也填写。
现在,我需要将此 URL 直接提供给移动开发人员,而且我不能这么晚才设置超时。我需要它很多年,或者可能总是可以访问。这样做的好方法是什么?解决办法是什么
【问题讨论】:
-
什么 Boto3 API 返回签名 URL?上传后生成网址吗?
-
是的,它是返回的 URL
-
您是否完整阅读了我的问题?
-
哦,对了,我在内部使用 Boto3 的 Python 中使用 django-storages。 django-storages.readthedocs.io/en/latest/backends/amazon-S3.html
-
您不应该将已签名的 URL 硬编码到应用程序中……或任何您无法轻松更新的内容。该 URL 不仅最终会过期(并且不能未过期),而且当您停用或轮换您的 AWSAccessKeyId 时(如您定期应该这样做,当然如果您的秘密被泄露,则需要)任何由该 URL 签名的 URL密钥立即失效。 揭示一个签名的 URL 并没有什么不安全的地方,但是运送一个依赖它无限期保持有效的产品将是一个严重的错误。
标签: amazon-s3 timeout boto3 django-storage