我目前正在私有存储桶中使用预签名的 URL/cookie,以便从前端应用程序向特定用户传送访问 URL。
从正面,用户单击一个按钮,该按钮对 API 网关 + lambda 进行 API 调用以生成文件(如果已经存在,则不生成文件(,然后生成一个有效的预签名 URL,持续 60 秒。
我想做同样的事情:为安全 URL 提供对私有存储桶中文件的访问权限,但没有过期延迟,因为接收者不再是用户而是 ERP。文件名永远不会改变,只有其中的数据,每个文件只能从一个ERP下载。
S3可以吗?
仅使用 S3 无法执行此操作,签名 URL 必须具有固定的到期日期。这只能延长到7天。
如果要实现此操作,则需要让自定义应用程序执行此操作。
如果您通过 DateLessThan 条件使用 CloudFront,则可以设置更长的到期时间,从而允许您设置遥远的未来。
或者,您可以创建自己的签名密钥,将您的存储存储在 DynamoDB 表中,API 网关应用程序触发 Lambda 以验证签名 URL,如果有效,则返回 S3 的 cody 内容。