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/21 19:29:22 UTC
[5/6] jclouds git commit: JCLOUDS-732: S3 portable object ACLs
JCLOUDS-732: S3 portable object ACLs
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/6c8be127
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/6c8be127
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/6c8be127
Branch: refs/heads/master
Commit: 6c8be1270384e9b6f051b7a9c6bb8cca6d9a57ef
Parents: d8aea21
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Feb 18 15:29:43 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Feb 21 10:28:02 2015 -0800
----------------------------------------------------------------------
.../org/jclouds/s3/blobstore/S3BlobStore.java | 26 ++++++++++++++++++++
1 file changed, 26 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/6c8be127/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 b12ccb8..2d6b84a 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 javax.inject.Singleton;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.ContainerNotFoundException;
import org.jclouds.blobstore.domain.Blob;
+import org.jclouds.blobstore.domain.BlobAccess;
import org.jclouds.blobstore.domain.BlobMetadata;
import org.jclouds.blobstore.domain.ContainerAccess;
import org.jclouds.blobstore.domain.PageSet;
@@ -292,6 +293,31 @@ public class S3BlobStore extends BaseBlobStore {
}
}
+ @Override
+ public BlobAccess getBlobAccess(String container, String name) {
+ AccessControlList acl = sync.getObjectACL(container, name);
+ if (acl.hasPermission(GroupGranteeURI.ALL_USERS, Permission.READ)) {
+ return BlobAccess.PUBLIC_READ;
+ } else {
+ return BlobAccess.PRIVATE;
+ }
+ }
+
+ @Override
+ public void setBlobAccess(String container, String name, BlobAccess access) {
+ AccessControlList acl = sync.getObjectACL(container, name);
+ if (access == BlobAccess.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 == BlobAccess.PRIVATE) {
+ acl.revokePermission(GroupGranteeURI.ALL_USERS, Permission.FULL_CONTROL)
+ .revokePermission(GroupGranteeURI.ALL_USERS, Permission.READ)
+ .revokePermission(GroupGranteeURI.ALL_USERS, Permission.WRITE);
+ }
+ sync.putObjectACL(container, name, acl);
+ }
+
/**
* This implementation invokes {@link S3Utils#deleteAndVerifyContainerGone}
*/