【发布时间】:2020-08-08 19:13:52
【问题描述】:
如何通过 AWS Java SDK V2.2.41 公开 S3 对象?
具体来说,通过 Java AWS SDK V2 的哪些 API 方法可用于在上传对象时将其设为公开,或者我们将现有上传的对象设为公开可读?
【问题讨论】:
-
你检查过 api 文档吗?很清楚......你会找到你需要的所有回复,而无需在 SO 上问这个问题。
如何通过 AWS Java SDK V2.2.41 公开 S3 对象?
具体来说,通过 Java AWS SDK V2 的哪些 API 方法可用于在上传对象时将其设为公开,或者我们将现有上传的对象设为公开可读?
【问题讨论】:
嗯,终于找到答案了:我们可以用
.acl(ObjectCannedACL.PUBLIC_READ)
PutObjectRequest 如下:
PutObjectResponse putObjRes = s3Client.putObject(
PutObjectRequest.builder()
.bucket("bucket")
.key("key)
.acl(ObjectCannedACL.PUBLIC_READ)
.build(), RequestBody.fromFile(<file>));
【讨论】:
您可以使用 CannedAccessControlList.PublicRead 属性通过 AWS Java SDK 创建公共对象。
s3client.putObject(putObjectRequest.withCannedAcl(CannedAccessControlList.PublicRead))
【讨论】: