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:52:12 UTC

jclouds-labs-google git commit: JCLOUDS-732: GCS portable object ACLs

Repository: jclouds-labs-google
Updated Branches:
  refs/heads/master c9fb110c9 -> 1f4000169


JCLOUDS-732: GCS portable object ACLs


Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/1f400016
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/1f400016
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/1f400016

Branch: refs/heads/master
Commit: 1f4000169a35439dc26484d95c3751f36dea9fa5
Parents: c9fb110
Author: Andrew Gaul <ga...@apache.org>
Authored: Wed Feb 18 19:06:29 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sat Feb 21 10:51:13 2015 -0800

----------------------------------------------------------------------
 .../blobstore/GoogleCloudStorageBlobStore.java  | 25 ++++++++++++++++++++
 1 file changed, 25 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/1f400016/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
index 7319086..3f434b9 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
@@ -28,6 +28,7 @@ import javax.inject.Inject;
 
 import org.jclouds.blobstore.BlobStoreContext;
 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.MutableBlobMetadata;
@@ -264,6 +265,30 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore {
    }
 
    @Override
+   public BlobAccess getBlobAccess(String container, String name) {
+      ObjectAccessControls controls = api.getObjectAccessControlsApi().getObjectAccessControls(container, name, "allUsers");
+      if (controls != null && controls.role() == DomainResourceReferences.ObjectRole.READER) {
+         return BlobAccess.PUBLIC_READ;
+      } else {
+         return BlobAccess.PRIVATE;
+      }
+   }
+
+   @Override
+   public void setBlobAccess(String container, String name, BlobAccess access) {
+      if (access == BlobAccess.PUBLIC_READ) {
+         ObjectAccessControls controls = ObjectAccessControls.builder()
+               .entity("allUsers")
+               .bucket(container)
+               .role(READER)
+               .build();
+         api.getObjectApi().patchObject(container, name, new ObjectTemplate().addAcl(controls));
+      } else {
+         api.getObjectAccessControlsApi().deleteObjectAccessControls(container, name, "allUsers");
+      }
+   }
+
+   @Override
    protected boolean deleteAndVerifyContainerGone(String container) {
       ListPageWithPrefixes<GoogleCloudStorageObject> list = api.getObjectApi().listObjects(container);
       if (list == null) {