Comment rendre public un objet S3 via le AWS Java SDK?
Plus précisément, quelles méthodes API via le Java AWS SDK peuvent être utilisées pour rendre un objet public lors de son téléchargement?
Trouvé la réponse dans un Amazon aws forum .
return s3Client.putObject(
new PutObjectRequest(bucketName, objectKey, inputStream, metadata)
.withCannedAcl(CannedAccessControlList.PublicRead));
La réponse étant
.withCannedAcl(CannedAccessControlList.PublicRead)
Une approche alternative qui permet un contrôle plus précis de qui est exactement autorisé à voir l'objet (tous les utilisateurs ou utilisateurs authentifiés uniquement):
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);