6

我在 S3 中有视频文件和一个通过 src 属性加载文件的简单播放器。

我希望视频只能通过我的网站查看,而不是直接通过 S3 URL(可能在页面的源代码中可见或通过右键单击访问)

浏览 AWS 文档,似乎我可以通过 HTTP 执行此操作的唯一方法是将签名和到期日期附加到查询中,但这还不够。其他访问限制涉及 AWS 用户。

我如何解决这个问题或实现这个服务器/客户端?

4

1 回答 1

12

我认为存储桶策略(您可以从管理界面设置)可以做到这一点。语法有一些变化(例如,您可以围绕拒绝允许条件构建策略)并过滤特定的文件名,但我更喜欢将媒体类型拆分为离散的存储桶

{
"Version": "2008-10-17",
"Id": "Restrict based on HTTP referrer policy",
"Statement": [
    {
        "Sid": "1",
        "Effect": "Deny",
        "Principal": {
            "AWS": "*"
        },
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::mybucket/myprefix/*",
        "Condition": {
            "StringNotLike": {
                "aws:Referer": [
                    "http://www.mydomain.com/*",
                    "http://www.subdomain.mydomain.com/*"
                ]
            }
        }
    }
]
}
于 2013-01-23T04:57:30.550 回答