如何使用下载助手插件保护 s3 文件不被下载



我将视频文件存储在 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/*"]}
}
}
]
}

一旦您的文件加载到浏览器中,就可以下载它。 您可以做的是为图像生成一个签名 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)

相关内容

  • 没有找到相关文章

最新更新