我正在一个项目中,我需要以安全的方式存储用户上传的图像。目前,我正在使用Cloudfront在AWS s3(静态内容)上托管网站。后端分别部署在应用程序负载平衡器之后。
用例是-用户从其桌面上传图像,然后将图像上传到s3中的存储桶。我已经设置了存储桶策略,以便每个人都可以向其上传图像(因为它是公共网站)。现在,我必须将图像访问权限仅限制为已上传图像的用户。即,如果用户A上传图片A1,A2,A3,则只有他应该能够查看,而用户B则不能。
当前,如果我通过浏览器检查工具获得了url,则可以无限制地直接查看图像。这违反了“安全地”在网站上存储图像的目的。 有人可以让我知道任何标准做法,以解决这个问题吗? 每次通过后端生成一些带有特殊哈希值的图像url都会超出工程设计范围吗?
答案 0 :(得分:2)
签出AWS Amplify's Storage module和File Access Levels文档。开箱它支持private
水平,可以让用户上传到(并查看)只有自己在桶里命名空间的前缀。这听起来像是您所追求的。