amazon-web-services - 可从经过身份验证的 URL 获得的 AWS 私有 S3 存储桶
问题描述
我目前在私有存储桶中使用预签名 URL/cookie,以便从前端应用程序向特定用户提供访问 URL。
从前面,用户单击一个按钮,该按钮对 API Gateway + lambda 进行 API 调用以生成文件(如果已经存在,则不生成文件),然后生成一个有效的预签名 URL,持续 60 秒。
我想做同样的事情:为私有存储桶中的文件提供安全的 URL 访问但没有过期延迟,因为接收者不再是用户而是 ERP。文件名永远不会改变,只有其中的数据,每个文件只能从一个 ERP 下载。
S3可以吗?
解决方案
仅使用 S3 无法做到这一点,签名 URL 必须具有固定的到期日期。这最多只能延长7 天。
如果您想实现这一点,您将需要一个自定义应用程序执行此操作。
如果您通过DateLessThan条件使用 CloudFront,您可以设置更长的到期时间,从而允许您设置更远的将来。
或者,您可以创建自己的签名密钥,并将其存储在 DynamoDB 表中,并使用 API Gateway 应用程序触发 Lambda 来验证签名 URL,如果有效则返回 S3 的 cody 内容。
推荐阅读
- javascript - 打包 JavaScript 函数
- android - 修复 Bitrise 脚本失败的 Git 日志命令需要做些什么
- bash - 如何将包含完整路径的文件移动到子文件夹?
- php - 错误 403 - 没有 storage.objects.create 访问权限
- java - SQL IN Query 是性能更好还是 Java 方法 ContainsAll
- pandas - 额外的引号被添加到数据框中的字符串字段
- amazon-web-services - AWS IAM 角色和 STS
- php - 未定义的变量:第 60 行 NULL Phalcon 上的用户视图
- python - /accounts/sign_up/ create() 处的 TypeError 采用 1 个位置参数,但给出了 2 个
- f# - F# 这个值不是函数