处理 aws s3 预签名 URL 到期日期的最佳实践

pho*_*bus 1 javascript amazon-s3 amazon-web-services pre-signed-url

我将图像保存到我的 s3 存储桶,生成一个预先签名的 URL 并将其保存为我的模型架构中的一个字段。当我的前端从后端检索模型对象时,它使用该 URL 来检索图像。

您可以使用 v4 设置的最大到期日期为 7 天。那么处理这些 URL 的“刷新”的最佳实践是什么?

我想到的事情:

  • 在我的后端有一个 cron 工作,它每隔 24 小时检查一次,如果我有任何 URL 在接下来的 24 小时内失效,并生成一个新的以防万一。
  • 每次收到 GET 请求时都检查它,如果无效则重新生成
  • 根本不检查后端,只需尝试点击前端的 URL,如果我得到 403,则请求从后端重新生成。我不太喜欢这个想法,因为我不能简单地使用 "/> 但必须将它包装在其他一些逻辑中。

Joh*_*ein 6

最佳做法是不要存储预先签名的 URL

相反,需要时即时生成它们。它们只需要几行代码即可生成,并且生成不涉及对 AWS 的调用。

因此,每当应用程序需要引用预签名 URL 时,立即生成并使用它。无需担心过期时间。

  • 由于我不想在前端拥有 AWS 凭证,因此我必须在后端生成它们。每次前端从后端请求 URL 时生成 URL(每 5 秒 1000 个 URL)似乎是一种开销。另外,尽管 img 标签中的 URL 发生了变化,浏览器是否仍然缓存图像? (2认同)