【问题标题】:Accessing private S3 content only from my application仅从我的应用程序访问私有 S3 内容
【发布时间】:2020-01-26 08:34:32
【问题描述】:

我有一个在 AWS S3 中存储图像的应用程序。它就像一个个人资料图片上传案例。上传个人资料图片后,图片将存储在 AWS S3 中,S3 链接将存储在数据库中。然后,应用程序将使用数据库中的该链接显示个人资料图片。

现在,由于存储桶是私有的,所以个人资料图片在我的应用程序中不可见。如何在不公开存储桶的情况下使用此链接显示图像?

我不认为,我可以使用 AWS 的签名 URL,因为此链接不能有时间限制。该链接需要始终可用,以便在应用程序上显示图像。

有什么方法可以做到吗?或者是否有任何其他行业标准方法可以使此功能成为可能?

【问题讨论】:

  • 签名 URL 是用户数据的最佳选择,否则您必须公开您的对象
  • 签名的 URL 会一直过期吗?我们可以创建一个没有过期的签名 URL 吗?
  • 是的,presigned url的最长过期时间是从创建之日起一周。

标签: amazon-web-services amazon-s3 frontend


【解决方案1】:

关于图像,最好的方式是通过 CDN 提供它们(您可以将其与 S3 链接)。他们的长的,脚手架的 URL 应该足够了(并公开一个专用的 S3 存储桶)。从朋友的Facebook帐户中查看照片,即使未登录也应该。如何设置CDN https://learnetto.com/blog/cloudfront-s3

如果您真的关心安全性,可以获取 Base64 格式的图像 (https://stackoverflow.com/a/2429959/290036)。将您的存储桶设为私有并仅允许访问您的内部服务。这样您可以更好地控制,但会失去 CDN 的所有优势。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-29
    • 1970-01-01
    • 2019-05-20
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 2018-02-23
    相关资源
    最近更新 更多