我正在尝试进行设置,以便存储桶可以容纳的唯一文件类型是 png、jpeg 和 gif 图像。我正在尝试制定这样的存储桶策略
{
"conditions": [
{"bucket": "bucketname"},
["starts-with", "$Content-Type", "image/jpeg"],
["starts-with", "$Content-Type", "image/png"],
["starts-with", "$Content-Type", "image/gif"],
["content-length-range", 0, 10485760]
]
}
然后我也试图限制大小,但是当我尝试更新我的政策时,我收到错误“无效的政策元素 - 条件”
我尝试使用这里的答案 - s3 direct upload restricting file size and type所以这就是我制作代码的地方,但我不确定这样做的正确方法,因为我的政策甚至没有被亚马逊接受。
最佳答案
如果您不确定如何编写,您可以为此使用策略生成器,例如,您将有类似
{
"Id": "Policy1464968545158",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464968483619",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<yourbucket>/*.jpg",
"Principal": "*"
},
{
"Sid": "Stmt1464968543787",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::<yourbucket>/*.png",
"Principal": "*"
}
]
}
正如 doc 所说您可以指定多个资源并聚合这部分,因此无需乘以语句
"Resource": [
"arn:aws:s3:::<yourbucket>/*.jpg",
"arn:aws:s3:::<yourbucket>/*.png",
"arn:aws:s3:::<yourbucket>/*.gif",
],
所以你会得到类似的东西
{
"Id": "Policy1464968545158",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1464968483619",
"Action": [
"s3:PutObject"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::<yourbucket>/*.jpg",
"arn:aws:s3:::<yourbucket>/*.png",
"arn:aws:s3:::<yourbucket>/*.gif",
],
"Principal": "*"
}
]
}
您可以在创建存储桶策略时访问策略生成器
关于amazon-web-services - 使用策略限制亚马逊 s3 存储桶上的文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37617844/