web-dev-qa-db-ja.com

S3オブジェクトをaws Java SDKを介してどのように公開しますか?

AWS Java SDKを介してS3オブジェクトをどのように公開しますか?

具体的には、Java AWS SDKを介したどのAPIメソッドを使用して、オブジェクトのアップロード時にオブジェクトをパブリックにすることができますか?

54
MikeNereson

答えは Amazon awsフォーラム で見つかりました。

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

答えは

.withCannedAcl(CannedAccessControlList.PublicRead)

131
MikeNereson

誰がオブジェクトを表示できるかをより詳細に制御できる代替アプローチ(すべてのユーザーまたは認証されたユーザーのみ):

    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);
3
Maurice