You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2015/02/13 02:42:20 UTC
[7/8] jclouds git commit: JCLOUDS-660: S3 portable container ACLs
JCLOUDS-660: S3 portable container ACLs
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ec3f0354
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ec3f0354
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ec3f0354
Branch: refs/heads/master
Commit: ec3f0354873b246bd0e92553f2962b350f7f73c7
Parents: 994f84e
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 6 14:47:42 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Thu Feb 12 17:26:48 2015 -0800
----------------------------------------------------------------------
.../org/jclouds/s3/blobstore/S3BlobStore.java | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ec3f0354/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
index b546cee..4d28a12 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/blobstore/S3BlobStore.java
@@ -30,6 +30,7 @@ import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.domain.Blob;
import org.jclouds.blobstore.domain.BlobMetadata;
+import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.PageSet;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.functions.BlobToHttpGetOptions;
@@ -130,6 +131,31 @@ public class S3BlobStore extends BaseBlobStore {
return createContainerInLocation(location, container, CreateContainerOptions.NONE);
}
+ @Override
+ public ContainerAccess getContainerAccess(String container) {
+ AccessControlList acl = sync.getBucketACL(container);
+ if (acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ)) {
+ return ContainerAccess.PUBLIC_READ;
+ } else {
+ return ContainerAccess.PRIVATE;
+ }
+ }
+
+ @Override
+ public void setContainerAccess(String container, ContainerAccess access) {
+ AccessControlList acl = sync.getBucketACL(container);
+ if (access == ContainerAccess.PUBLIC_READ) {
+ acl.revokePermission(GroupGranteeURI.ALL_USERS, Permission.FULL_CONTROL)
+ .revokePermission(GroupGranteeURI.ALL_USERS, Permission.WRITE)
+ .addPermission(GroupGranteeURI.ALL_USERS, Permission.READ);
+ } else if (access == ContainerAccess.PRIVATE) {
+ acl.revokePermission(GroupGranteeURI.ALL_USERS, Permission.FULL_CONTROL)
+ .revokePermission(GroupGranteeURI.ALL_USERS, Permission.READ)
+ .revokePermission(GroupGranteeURI.ALL_USERS, Permission.WRITE);
+ }
+ sync.putBucketACL(container, acl);
+ }
+
/**
* This implementation invokes {@link S3Client#listBucket}
*