在AWS S3中托管静态图像

时间:2018-04-13 02:14:22

标签: amazon-web-services amazon-s3

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

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

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

如何设置正确的广告系列政策以允许将这些图片加载到<img>代码的网页上?

2 个答案:

答案 0 :(得分:1)

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

请参阅:Share an Object with Others

答案 1 :(得分:0)

您可能可以使用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会验证他们是否有权下拉所请求的内容。