Как сделать объект S3 общедоступным через Java SDK aws? - PullRequest
47 голосов
/ 29 июня 2011

Как сделать объект S3 общедоступным через AWS Java SDK?

В частности, какие методы API через Java AWS SDK можно сделать общедоступным для объекта при его загрузке?

Ответы [ 2 ]

129 голосов
/ 29 июня 2011

Нашел ответ на форуме amazon aws .

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

Ответ будет

.withCannedAcl(CannedAccessControlList.PublicRead)

3 голосов
/ 09 июля 2018

Альтернативный подход, который позволяет более детально контролировать, кому именно разрешено просматривать объект (только для всех пользователей или только для аутентифицированных пользователей):

    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);
...