【问题标题】:How to make an S3 object public using AWS Java SDK V2?如何使用 AWS Java SDK V2 公开 S3 对象?
【发布时间】:2020-08-08 19:13:52
【问题描述】:

如何通过 AWS Java SDK V2.2.41 公开 S3 对象?

具体来说,通过 Java AWS SDK V2 的哪些 API 方法可用于在上传对象时将其设为公开,或者我们将现有上传的对象设为公开可读?

【问题讨论】:

  • 你检查过 api 文档吗?很清楚......你会找到你需要的所有回复,而无需在 SO 上问这个问题。

标签: java amazon-s3


【解决方案1】:

嗯,终于找到答案了:我们可以用

.acl(ObjectCannedACL.PUBLIC_READ)

PutObjectRequest 如下:

    PutObjectResponse putObjRes = s3Client.putObject(
            PutObjectRequest.builder()
                    .bucket("bucket")
                    .key("key)
                    .acl(ObjectCannedACL.PUBLIC_READ)
                    .build(), RequestBody.fromFile(<file>));

【讨论】:

    【解决方案2】:

    您可以使用 CannedAccessControlList.PublicRead 属性通过 AWS Java SDK 创建公共对象。

    s3client.putObject(putObjectRequest.withCannedAcl(CannedAccessControlList.PublicRead))
    

    【讨论】:

    • 谢谢,但这在 SDK V2 中不可用。这是 V1 代码。
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2016-07-24
    • 2014-10-11
    • 2021-08-26
    相关资源
    最近更新 更多