amazon-web-services - 在 Amazon S3 中将 aws3 存储桶中创建的文件夹设为公开或私有(private)

标签 amazon-web-services spring-boot directory public bucket

我已创建 aws3 存储桶并成功将文件上传到其中。我想在存储桶中创建两个文件夹(一个用于存储公共(public)文件,另一个用于存储私有(private)文件)。如何设置文件夹访问私有(private)或公共(public)。

最佳答案

我假设您正在从 AWS 控制台进行尝试。在这种情况下,只需右键单击要公开的文件夹即可。右键单击,应该有一个选项“make-public”,这应该将其公开。

使用 Java 编程: 如果要创建文件夹(这是 S3 技术术语的关键),您需要使用“ jar 装 ACL”。

因此,您的代码应如下所示: s3client.putObject(...).withCannedAcl(CannedAccessControlList.PublicRead)

参见引用https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl

正如您在评论中提到的,每个人都应该拥有对公共(public)文件夹的读取访问权限,在这种情况下,有一个存储桶级别策略向每个人授予“公共(public)”命名文件夹访问权限。

政策示例: 示例:

    {
    "Version":"2012-10-17",
    "Statement": [
        {
            "Effect":"Allow",
            "Principal": "*",
            "Action":["s3:GetObject"],
            "Resource":["arn:aws:s3:::test-b11/public/*"]
        }
    ]
} 

其中存储桶名称为“test-b11”,公共(public)文件夹为“public”

在控制台中,单击一个存储桶,转到“权限”选项卡,然后单击需要上传策略的“存储桶策略”。

关于amazon-web-services - 在 Amazon S3 中将 aws3 存储桶中创建的文件夹设为公开或私有(private),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51284040/

相关文章:

java - 错误 : Attempted to call method "format" on null context object

spring - 这是我的 spring-boot-starter-tomcat 依赖项

java - 使用终端从文件夹 Mac 运行 Java 程序

directory - 如何 move Perforce "workspace"文件夹?

c++ - 如何创建加密的挂载文件夹

amazon-web-services - 在哪里设置 aws 访问/ key 以使 kube-up.sh 在 Kubernetes (aws) 中正常工作

node.js - 亚马逊 EC2 Ubuntu 实例 : Where should I upload the files to access them from the browser?

java - 获取 500 内部服务器错误 Spring Boot

ios - AMAZON AWS 如何为端点订阅 SNS 主题?

java - 使用 Java sdk 删除 AWS SQS 消息