如何为照片模块创建/缓存预签名 URL?

问题描述 投票:0回答:1

我想将相册功能集成到我的应用程序中,用户可以上传相册并与其他人共享。现在我将这些照片上传到 S3 存储桶。我问自己授予对这些图像的访问权限的最佳方法是什么。我考虑了这三个选择:

  1. 通过我的应用程序交付图像以安全地访问它们
  2. 创建(长期)预签名 URL 并将其缓存在数据库或缓存中直至过期
  3. 为每个请求的所有图像创建预签名 URL

第一个想法会给我的应用程序带来不必要的高负载。第二意味着我必须实现一个逻辑来请求新的预签名 URL(如果已过期),而第三则意味着由于针对 AWS-API 创建了此预签名 URL(尚未检查限制),因此会导致响应时间更长。

您有什么建议?

amazon-web-services amazon-s3 aws-sdk
1个回答
0
投票

使用#3

可以通过几行代码创建预签名 URL,并且 不需要回调 AWS。预签名 URL 只是使用 HMAC 函数创建的哈希签名。

当用户导航到其照片页面时,您可以通过在 HTML <img> 标签中包含预签名 URL 来显示

缩略图
。您还可以提供一个预签名 URL,如果他们点击照片,该 URL 会链接到全尺寸版本

© www.soinside.com 2019 - 2024. All rights reserved.