我使用 Amazon S3 存储我网站的图像。我有一个存储桶策略,可以阻止其他网站盗链我的图片。
为了让它发挥作用,我在 S3 中将文件权限设置为“私有”,然后存储桶策略只允许访问我的网站。
这很好用,但是因为文件是“私有的”,所以我不能直接在浏览器中查看图像,这是我想要允许的。
这是政策
{
"Version": "2008-10-17",
"Id": "preventHotLinking",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://mydomain.com/*",
"http://www.mydomain.com/*"
]
}
}
}
]
}
所以,总结一下:
- 文件本身设置为私有
- 上述政策允许图像显示在域“mydomain.com”的页面上,但不允许显示在“someoneelsesdomain.com”的页面上
不过,这也会阻止直接访问,因此将http://jbtestyt.s3.amazonaws.com/archie.jpg粘贴到浏览器中不会显示图像(因为它是私有的)。
但我希望显示图像以供直接访问。
可能的解决方案是公开文件,然后拒绝除我列出的所有推荐人之外的所有推荐人?但我不确定,也找不到类似的东西。
提前谢谢了。