【问题标题】:Hosting static images in AWS S3在 AWS S3 中托管静态图像
【发布时间】:2018-04-13 02:14:22
【问题描述】:

我正在集成让我的网络应用程序的用户能够将图像上传到我的网站的功能。我想将这些图像存储在 AWS S3 存储桶中,但我需要注意隐私并确保只有有权访问这些文件的人才能看到它们。

用户应该可以通过<img src="s3_link"> 访问这些文件,但不能直接访问存储桶或列出其中的对象。

我可以通过制作桶public 来实现这一点,但这似乎很危险。

如何设置适当的存储桶策略以允许将这些图像加载到带有<img> 标记的网页上?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    S3 支持预签名 URL。它们可用于限制对特定用户的访问。

    见:Share an Object with Others

    【讨论】:

      【解决方案2】:

      您也许可以使用https://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-4(限制对特定 HTTP 引荐来源网址的访问)之类的东西。

      很难确保完全控制,因为 S3 是一个基本的 CND,没有动态创建/授予权限的能力,再加上您希望 <img /> 标签直接从 S3 获取内容这一事实。

      如果您尝试限制下载,则需要设置一些基本逻辑,以授予用户某种类型的访问令牌,他们将在请求下载内容时提供这些令牌(需要 lambda 脚本/数据库或服务如果调用者经过身份验证,可以将图像拉下来然后提供它们)。

      听起来您需要经过身份验证的用户通过 API 请求访问内容,传入一个授权令牌,然后 API 将验证他们是否有权下拉请求的内容。

      【讨论】:

        猜你喜欢
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 2012-07-27
        • 1970-01-01
        • 1970-01-01
        • 2019-11-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多