[ https://issues.apache.org/jira/browse/JCLOUDS-1042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15104059#comment-15104059 ]
Andrew Gaul commented on JCLOUDS-1042: -------------------------------------- [~igor.aleks...@yahoo.com] I removed the corresponding code from {{ObjectToBlobMetadata}}. Please share your feedback on whether this resolves your issue. > S3BlobStore.putBlob() makes a call to get ACL which maybe blocked by S3 > policy, resulting in failure of the operation. > ---------------------------------------------------------------------------------------------------------------------- > > Key: JCLOUDS-1042 > URL: https://issues.apache.org/jira/browse/JCLOUDS-1042 > Project: jclouds > Issue Type: Bug > Components: jclouds-blobstore > Affects Versions: 1.9.1 > Reporter: Igor Alekseev > Assignee: Andrew Gaul > Labels: s3 > Fix For: 2.0.0 > > > 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. > {code:java} > 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); > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)