2017-10-08 108 views
0

我想用S3来存储用户上传的图像。任何人都应该可以看到像个人资料图片和其他缩略图。不过,我也希望让图片“张贴”到组中的用户可以看到一些图片。难以从公开的S3存储桶中获取图像?

我的应用程序将处理所有逻辑来决定某个用户是否有权访问该图像。

我的问题是:使用公共S3存储桶和我的应用程序控制图像的可见性,有人会看到他们通常无法访问的图像有多难?

有没有更好的方法来设置S3存储桶来满足这些要求?

谢谢。

回答

2

最好的办法是:

  • 不要公开访问授予图像的任何 /亚马逊S3对象
  • 你在任何时候都应用决定了他们是否应该被允许接入
  • 对于允许访问映像的用户,请创建一个Amazon S3预先签名的URL,该URL是一个时间限制的URL,它将授予访问该对象的权限。

您的应用程序可以在几行代码中生成预签名的URL,而无需调用AWS。

这样,您的所有安全性都由应用程序维护,而不必选择性地公开某些对象,并且人们无法获得对对象的未授权访问。

相关问题