假设我有下面的s3结构
company_folder
folder1
folder2
folder3
sub_folder1
sub_folder2
我目前拥有以下权限,可以访问每个文件夹、子文件夹和文件。这是一个网络应用程序。
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::company_folder/*"
使用管理员IAM访问密钥id:ABCD我可以使用carrierwave将图像放入子文件夹。我使用一个cloudfront根url从各种“文件夹”和“子文件夹”发送图像
发送到sub_folder2的图像不会显示在html" target="_blank">网站上,它们是高分辨率的。他们不应该被任何人访问,除了管理员。
我如何在company_folder的桶策略中更改对sub_folder2的限制
我需要拒绝GET和PUT访问'sub_folder2'的每个人,除了管理员,同时保持在'company_folder'中的所有其他内容的公共读取。
我认为“company_文件夹”需要保持公开,因为我的cloudfront url指向该文件夹。
这是编辑bucket策略的简单解决方案吗?
像下面这样的桶策略应该适用于您。诀窍是显式拒绝访问您不想要的资源/操作,然后允许访问您想要的资源/操作。小心桶策略、IAM策略和对象ACL之间的交互。还请确保您使用可信顾问来警告您世界可读的存储桶。
{
"Id": "Policy1429934459265",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1429934187436",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::company_folder/*",
"Principal": "*"
},
{
"Sid": "Stmt1429934452272",
"Action": [
"s3:AbortMultipartUpload",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:GetObject",
"s3:GetObjectAcl",
"s3:GetObjectTorrent",
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersionTorrent",
"s3:PutObject",
"s3:PutObjectAcl",
"s3:PutObjectVersionAcl",
"s3:RestoreObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::company_folder/folder3/sub_folder2/*",
"Principal": {
"AWS": [
"arn:aws:iam::888888888888:user/youruser"
]
}
},
{
"Sid": "Stmt1429934245711",
"Action": "s3:GetObject",
"Effect": "Deny",
"Resource": "arn:aws:s3:::company_folder/folder3/sub_folder2/*",
"Principal": "*"
}
]
}
我有一个Amazon S3存储桶,所有设置都处于默认模式。当我转到我的Bucket权限选项卡并查看Public access/Everyone部分时,所有选项都为空,因此所有内容都是私有的。 现在我制作一个带有很长随机sha1-hash的文件夹,我在这个文件夹中上传一些文件和子文件夹,并将整个文件夹公开。是否可以检测(列出)此文件夹? 看起来不错。但也许还有其他方法可以检测我的公用文件夹?
问题内容: 我需要列出S3存储桶中某个文件夹中包含的所有文件。 文件夹结构如下 我有与用户有关的文件和与某个用户的联系人有关的文件。我需要同时列出两者。 要列出文件,我使用以下代码: 要列出某个用户的文件,我使用以下前缀: 并且我正确地获得了除子目录之外的目录中的所有文件,例如: 要列出某个用户联系人的文件,我使用以下前缀: 但是在这种情况下,我还将目录本身作为返回的对象: 为什么我会得到这种行为
问题内容: 我有一个s3结构,如下所示: 我需要做的就是给定s3bucket的名称和一个第一级密钥的条目,我需要位于第一级密钥下的所有第二级密钥的名称。因此,从本质上来说,如果我们将其视为一个文件夹,则将获得的名称(即)和其子文件夹之一的名称,我想列出其中的所有文件夹。虽然只是名称,而不是完整的路径。 有人可以指出如何使用亚马逊的Java SDK在Java中做到这一点吗? 谢谢 问题答案: 我做了
问题内容: 如何使用Java将所有文件从一个文件夹移动到另一文件夹?我正在使用此代码: 但它仅适用于一个特定文件。 谢谢!!! 问题答案: 如果对象指向文件夹,则可以遍历其内容
我正在制作一个soundboard应用程序,当长按按钮1时,我需要共享sound1。我可以用以下代码创建共享菜单: 我可以与whatsapp和Google Drive完美共享音频文件,但其他应用程序不起作用。我听说您必须将文件复制到外部存储,并从那里共享它们。我已经搜索了将近两天,但我找不到这样做的方法。Stack上的其他文章也帮不了我:/ 如何在外部存储器中创建目录,将文件(sound1.ogg
Inno Setup:动态添加文件夹中的所有文件并添加组件标签,因此在运行设置期间,用户可以选择自定义设置并选择要复制的文件。 我想创建一个Inno安装文件,将抓取文件夹中的文件,用户可以放在那里,而不必每次添加新文件时修改Inno安装文件。同时,我需要安装文件的用户能够选择要复制的文件。 如果我做了这样的事情: 自定义设置仅显示复制或不复制整个文件夹的选项。