亚马逊 AWS S3 文件上传。如何设置文件权限?

Amazon AWS S3 file upload. How to set file permissions?

我正在使用亚马逊的 AWS SDK (S3) 上传文件,一切正常。下面是我的代码:

final AWSCredentials credentials = new AWSCredentials() {
    @Override
    public String getAWSAccessKeyId() {
        return "...myAccessKey...";
    }

     @Override
     public String getAWSSecretKey() {
        return "...mySecretKey...";
    }
};

final StaticCredentialsProvider credentialsProvider = new StaticCredentialsProvider(credentials);

final TransferManager transferManager = new TransferManager(credentialsProvider);

final Upload upload = transferManager.upload(Config.AWS_IMAGE_BUCKET, "images/" + file.getName(), file);

问题是,每当我上传这样的东西时,权限都没有设置为 public,所以我不能在我的应用程序中使用它们。

如何从我的代码中设置文件权限,以便 public 可以查看?

谢谢!

您需要提供 PutObjectRequest with the ACLs you want when you call upload.

将文件放入存储桶时选择合适的ACL策略。

可以是以下选项之一:

1) ACL_AUTHENTICATED_READ

允许经过身份验证的用户进行读取访问。

2) ACL_PRIVATE

只允许私人访问文件。

3) ACL_PUBLIC_READ.

允许 public 读取文件。

4) ACL_PUBLIC_READ_WRITE

当您将文件写入存储桶时,允许 public 对文件进行读写访问。