amazon-web-services - S3 存储桶策略仅使某些文件类型公开可读
问题描述
我们经营一家可以下载音乐的商店。
在存储桶中,我们有用特定数字表示每个曲调的文件夹,在文件夹中我们有各种文件格式。
预听文件以 mp3 格式存储。
目前,我们手动选择 mp3 文件并授予他们对任何人(世界)的读取权限。
但这也应该可以通过存储桶策略实现,即,每个上传的 mp3 都可以被任何人读取。
但是我们使用策略生成器创建的策略不起作用......
有任何想法吗?
{
"Id": "Policy1541353430646",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1541353373980",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::examplebucket/*",
"Condition": {
"StringEquals": {
"s3:prefix": "mp3"
}
},
"Principal": "*"
}
]
}
解决方案
Aprefix
表示名称的开头,所以这不起作用。
相反,更改Resource
以匹配您的结局:
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::examplebucket/*.mp3"
}
]
}
这也适用于子目录中的对象。
推荐阅读
- mongodb - 如果在事务中更改该文档之前,其他客户端更改了事务中读取的文档,则 mongodb 事务是否会失败?
- r - 基于多个条件的子集数据
- node.js - 如何在内容中不包含用户名的情况下检查消息内容
- laravel - 无法使用 Laragon 运行的 Laravel 和 Spatie 媒体库上传图像
- actions-on-google - 智能家居 2 向通信,如 Google Home Hub 和 Nest hello
- c++ - 为什么它队列没有名为 push_back 的成员
- javascript - 如何修复 HERE javascript map v3.1 上的低质量光栅图像
- javascript - React:检查前端认证的用户
- git - Git 仓库地址
- android - 仅通过添加依赖项,LeakCanary 是如何安装和准备好的?