处理 aws s3 预签名 URL 到期日期的最佳实践
Best practice to handle aws s3 presigned URL expiration date
我正在将图像保存到我的 s3 存储桶中,生成一个预先签名的 URL 并将其保存为我的模型架构中的一个字段。当我的前端从后端检索模型对象时,它使用 URL 检索图像。
您可以为 v4 设置的最长到期日期为 7 天。那么处理 URL 中的 "refreshing" 的最佳做法是什么?
我想到的事情:
- 在我的后端有一个 cron 作业来检查每个,例如每 24 小时,如果我有任何 URL 在接下来的 24 小时内失效,并生成一个新的以防万一。
- 每次收到GET请求都会检查,如果无效则重新生成
- 根本不检查后端,只是尝试在前端点击 URL,如果我收到 403,则请求从后端重新生成。我不太喜欢这个想法,因为我不能简单地使用 "/>,而是必须用其他逻辑来包装它。
最佳做法是不存储预签名URLs。
相反,在需要时即时生成它们。他们只需要几行代码就可以生成,并且生成不涉及对 AWS 的调用。
因此,每当应用需要引用预签名 URL 时,立即生成并使用它。无需担心过期时间。
我正在将图像保存到我的 s3 存储桶中,生成一个预先签名的 URL 并将其保存为我的模型架构中的一个字段。当我的前端从后端检索模型对象时,它使用 URL 检索图像。
您可以为 v4 设置的最长到期日期为 7 天。那么处理 URL 中的 "refreshing" 的最佳做法是什么?
我想到的事情:
- 在我的后端有一个 cron 作业来检查每个,例如每 24 小时,如果我有任何 URL 在接下来的 24 小时内失效,并生成一个新的以防万一。
- 每次收到GET请求都会检查,如果无效则重新生成
- 根本不检查后端,只是尝试在前端点击 URL,如果我收到 403,则请求从后端重新生成。我不太喜欢这个想法,因为我不能简单地使用 "/>,而是必须用其他逻辑来包装它。
最佳做法是不存储预签名URLs。
相反,在需要时即时生成它们。他们只需要几行代码就可以生成,并且生成不涉及对 AWS 的调用。
因此,每当应用需要引用预签名 URL 时,立即生成并使用它。无需担心过期时间。