繁体   English   中英

如何通过 aws Java SDK 公开 S3 object?

[英]How do you make an S3 object public via the aws Java SDK?

如何通过 AWS Java SDK 公开 S3 object?

具体来说,通过 Java AWS SDK 可以使用哪些 API 方法使上传的 Z497031794414A55543 公开?

亚马逊 AWS 论坛中找到了答案。

return s3Client.putObject(
   new PutObjectRequest(bucketName, objectKey, inputStream, metadata)
      .withCannedAcl(CannedAccessControlList.PublicRead));

答案是

.withCannedAcl(CannedAccessControlList.PublicRead)

另一种方法可以更精细地控制允许查看 object 的人员(仅限所有用户或经过身份验证的用户):

    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, keyName, image);
    AccessControlList acl = new AccessControlList();
    acl.grantPermission(GroupGrantee.AllUsers, Permission.Read); //all users or authenticated
    putObjectRequest.setAccessControlList(acl);
    s3client.putObject(putObjectRequest);
s3client.setObjectAcl("bucketName[/subDirectory]", fileName, CannedAccessControlList.PublicRead);
URL url = s3client.getUrl("bucketName[/subDirectory]", fileName);
String sharableLink = url.toExternalForm();

资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM