Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.9.1
Description
A user may be prevented by S3 bucket policy from getting ACL, but can still have rights to do put/get/delete. Currently the code below fails to do put when there's an exception getting ACL.
public String putBlob(String container, Blob blob, PutOptions overrides) { if (overrides.isMultipart()) { // need to use a provider if the strategy object is stateful return multipartUploadStrategy.get().execute(container, blob); } // TODO: Make use of options overrides PutObjectOptions options = new PutObjectOptions(); try { AccessControlList acl = bucketAcls.getUnchecked(container); if (acl != null && acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ)) options.withAcl(CannedAccessPolicy.PUBLIC_READ); } catch (CacheLoader.InvalidCacheLoadException e) { // nulls not permitted from cache loader } return sync.putObject(container, blob2Object.apply(blob), options); }