我的视频文件存储在s3存储桶中。
我的文件可以使用名为Video DownloadHelper
的插件下载。它有两种选择:下载Using Browser
和下载Using Companion App
。
我通过使用特定的http引荐来源网址设置存储桶策略来限制S3文件访问。
现在添加此策略后,将无法下载Using Browser
,但能够下载Using Companion App
。
如何也限制使用第二种方法下载文件?我设置的存储桶策略如下。任何帮助,将不胜感激。谢谢。
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests referred by www.example.com and example.com.",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"StringLike": {"aws:Referer": ["http://www.example.com/*","http://example.com/*"]}
}
},
{
"Sid": "Explicit deny to ensure requests are allowed only from specific referer.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"StringNotLike": {"aws:Referer": ["http://www.example.com/*","http://example.com/*"]}
}
}
]
}
答案 0 :(得分:0)
将文件加载到浏览器中后,即可下载文件。您可以做的是为图像生成一个签名的URL,该URL在短时间内有效。
将图像的src
设置为重定向到signed URL generated by the backend
的API,因此在检查浏览器时,它将signed URL
显示为SRC
,但该URL可以不可重用。但这只会阻止图像URL的重用,或者如果下载帮助程序正在使用URL下载图像,则这将阻止。每当用户刷新页面时,都会生成一个新的URL并将其发送到浏览器。
例如:
<img src=https://api-url/image/image-id>
并在您的后端执行类似
的操作response.redirect(signed-url)