amazon-s3 - 如何根据扩展名限制 S3 中的文件?

标签 amazon-s3

我正在使用 Amazon S3 存储桶提供静态网站。我知道我可以限制对某些“文件夹”的读取访问(确实很关键,因为 S3 没有文件夹),但我真正想做的是通过文件扩展名限制访问。

换句话说,我想说“向每个人授予此存储桶中任何文件的读取权限,只要该文件以 htm/css/js/png 结尾”;这可能吗?

(顺便说一句,我担心我会意外上传 .git 文件,或者类似的我不想向世界展示的文件;设置安全策略来防止此类文件被显示似乎比相信自己永远不会意外上传错误的文件)。

最佳答案

是的,这是可能的。你可以写一个Bucket Policy 。您可以使用正则表达式来定义哪些对象受您的策略影响 ( examples )。

您的政策将类似于:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "auniqueid",
            "Effect": "Deny",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*.jpg"
        }
    ]
}

这将拒绝访问 buket bucket 的所有 jpg 文件。

关于amazon-s3 - 如何根据扩展名限制 S3 中的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169108/

相关文章:

amazon-web-services - 当分区部分加载时,Amazon Athena 不返回最新数据

css - Django:使用正确的 URL 从 S3 提供 CSS,但无法加载

amazon-s3 - cloudfront/s3 不使用缓存控制

ruby - Sax 从 S3 解析大文件

JAVA -AWS 从 Elastic Beanstalk 上的 JAVA 应用程序访问 S3 存储桶

android - 无法从 Amazon S3 下载具有特殊字符的文件

reactjs - 读取文本文件 aws-amplify s3 从预签名 URL 读取数据

ajax - 从 (AngularJS) 单页应用程序直接(且简单!)AJAX 上传到 AWS S3

android - AWS Android SDK 示例中的 "the provided key element does not match the schema"

mysql - 将数据从 s3 加载到运行 EC2 实例(不是 RDS)的 mySQL