【问题标题】:AWS S3 Prevent Files From Being Download From Browser URLAWS S3 阻止从浏览器 URL 下载文件
【发布时间】:2016-04-05 20:54:12
【问题描述】:

我有一个 AWS S3 存储桶,我希望我的大部分文件都可以通过 url 访问(我的图像和视频链接等) - 这已经完成了。我有其他我不想从 URL 访问的文件,这些文件是音频文件(mp3、wav、flac 等)。我只希望用户能够通过为浏览器提供服务的 php 脚本访问我的音频文件。或多或少,我不希望用户通过猜测文件所在的 AWS 存储桶的 URL 来访问这些文件。

我被难住了。谁能指出我正确的方向。谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    您可以将文件设为私有并生成签名 URL 以允许某人临时访问这些文件:Share an Object with Others

    或者您可以设置一个政策来限制人们直接访问文件,只允许他们访问从您的网站链接的文件Restricting Access to a Specific HTTP Referrer

    或者您可以通过 PHP 脚本发送这些文件来提供这些文件,即将文件下载到您的 PHP 服务器并从那里返回文件内容。在这种情况下,您可以在 S3 中将这些文件设为私有,甚至将它们移动到完全私有的单独存储桶中。我不推荐这种方法,因为它会给您的服务器带来更多负载。

    【讨论】:

      【解决方案2】:

      听起来对存储桶策略的更新会有所帮助。下面是一个允许访问的示例,可以修改为拒绝访问:http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2

      【讨论】:

        【解决方案3】:

        您可以将存储桶下的内容构造为:

        • 公开
        • 私人

        并创建类似于以下内容的存储桶策略:

        {
          "Id": "Policy1459891655092",
          "Version": "2012-10-17",
          "Statement": [
            {
              "Sid": "Stmt1459891443631",
              "Action": [
                "s3:GetObject"
              ],
              "Effect": "Allow",
              "Resource": "arn:aws:s3:::bucketname/public/*",
              "Principal": "*"
            }
          ]
        }
        

        将“bucketname”更改为您的实际 s3 存储桶名称。

        【讨论】:

          【解决方案4】:

          有点老问题,但经过一些研究,我在另一个线程上发现了这个回复,可以帮助解决此类问题;解决方案是直接从您的服务器端代码中指定 params 对象内的 content-type 属性:

          var params = { Bucket: 'your-bucket', Key: 'filename.png', ContentType: 'image/png', ... }

          https://stackoverflow.com/a/60892449/12214978

          【讨论】:

          • 欢迎提供解决方案的链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及为什么存在,然后引用最多您链接到的页面的相关部分,以防目标页面不可用。可能会删除仅是链接的答案。
          猜你喜欢
          • 1970-01-01
          • 2014-03-06
          • 2019-05-27
          • 1970-01-01
          • 2011-10-09
          • 2016-09-24
          • 1970-01-01
          • 2016-09-14
          相关资源
          最近更新 更多