AWS S3 公共对象与私有对象?

Joh*_*and 4 xcode amazon-s3 amazon-web-services ios swift

回到 S3,我的存储桶中有图像的 URL,我将在我的应用程序中呈现这些图像,但它们被设置为私有。当我尝试单击该链接时,它显示“访问被拒绝”。当我将链接的设置更改为公共时,它会通过,但是我读到公共访问并不是最安全的事情。所以这本质上是一个由两部分组成的问题

1) 存储桶中的公共链接/对象和私有链接/对象有什么区别?

2)如何使我自己和我的用户都可以访问我的存储桶中的私有链接/对象?

jar*_*mod 6

私有对象需要身份验证;公共对象则不然。

关于您的评论“公共访问不是最安全的事情”,在决定是否公开 S3 对象时,您通常需要考虑以下几点:

  1. [重大]有人可以下载吗?如果对象的内容是您不应该与世界共享的内容,例如用户的家庭照片,那么答案是“不”。
  2. [次要]您是否要在每次未知人员下载对象时付费?作为存储桶所有者,您需要为数据传出付费(除非您选择“请求者付费”,在这种情况下请求者需要进行身份验证)。

至少有两种方法可以让您的用户可以使用私有S3 对象,而无需全世界都可以访问它们:

  1. 对对象使用有时间限制的预签名 URL(请参阅本文
  2. 代理对象自行下载,以便对对象的所有请求都发送到您的应用程序服务器,因此可以限制为经过身份验证的会话。