我的网站上有一个功能,用户可以上传图像 . 用户可以看到自己的图像而不是其他图像 . 这些图像存储在Amazon S3上,但是在我的网站上上传和查看,该网站位于网络托管而不是S3 .
我曾尝试通过我的私钥在我的网站上显示图片,因为图片在亚马逊上是私密的,但却失败了 .
发现这篇文章:http://blog.learningtree.com/configuring-amazon-s3-to-serve-images,它描述了如何使图像/文件更加私密,即使它们在S3上设置为公共 . 该网站建议使用robots.txt文件停止搜索引擎,并仅向来自我的域的用户停止热链接提供图片 .
如果我在S3上将它们公开,或者我应该考虑别的什么,你认为这已经足够了吗?
1 回答
您还可以将S3上的图像配置为私有,然后在您的应用中生成 pre-signed URLs . 这样,您可以在链接中包含到期时间 .
来自S3 docs中的Authenticating REST Requests:
然后,人们只能在一段时间内使用生成的URL . 如果他们通过您的应用程序,它将在未来的某个时间生成链接(例如,15分钟为例) . 如果人们传递这些图片的链接,这些链接会自动过期 .
大多数S3 SDK都有更高级别的方法来预先签署这些URL .
相关:How secure are presigned URLs in AWS S3?这里是SO .