static Entity fromPb(String entity) { if (entity.startsWith("user-")) { return new User(entity.substring(5)); } if (entity.equals(User.ALL_USERS)) { return User.ofAllUsers(); } if (entity.equals(User.ALL_AUTHENTICATED_USERS)) { return User.ofAllAuthenticatedUsers(); } if (entity.startsWith("group-")) { return new Group(entity.substring(6)); } if (entity.startsWith("domain-")) { return new Domain(entity.substring(7)); } if (entity.startsWith("project-")) { int idx = entity.indexOf('-', 8); String team = entity.substring(8, idx); String projectId = entity.substring(idx + 1); return new Project(Project.ProjectRole.valueOf(team.toUpperCase()), projectId); } return new RawEntity(entity); } }
@Test public void testCopyBlobWithPredefinedAcl() { String sourceBlobName = "test-copy-blob-source"; BlobId source = BlobId.of(BUCKET, sourceBlobName); ImmutableMap<String, String> metadata = ImmutableMap.of("k", "v"); BlobInfo blob = BlobInfo.newBuilder(source).setContentType(CONTENT_TYPE).setMetadata(metadata).build(); Blob remoteBlob = storage.create(blob, BLOB_BYTE_CONTENT); assertNotNull(remoteBlob); String targetBlobName = "test-copy-blob-target"; Storage.CopyRequest req = Storage.CopyRequest.newBuilder() .setSource(source) .setTarget( BlobId.of(BUCKET, targetBlobName), Storage.BlobTargetOption.predefinedAcl(Storage.PredefinedAcl.PUBLIC_READ)) .build(); CopyWriter copyWriter = storage.copy(req); assertEquals(BUCKET, copyWriter.getResult().getBucket()); assertEquals(targetBlobName, copyWriter.getResult().getName()); assertEquals(CONTENT_TYPE, copyWriter.getResult().getContentType()); assertEquals(metadata, copyWriter.getResult().getMetadata()); assertNotNull(copyWriter.getResult().getAcl(User.ofAllUsers())); assertTrue(copyWriter.isDone()); assertTrue(remoteBlob.delete()); assertTrue(storage.delete(BUCKET, targetBlobName)); }
static Entity fromPb(String entity) { if (entity.startsWith("user-")) { return new User(entity.substring(5)); } if (entity.equals(User.ALL_USERS)) { return User.ofAllUsers(); } if (entity.equals(User.ALL_AUTHENTICATED_USERS)) { return User.ofAllAuthenticatedUsers(); } if (entity.startsWith("group-")) { return new Group(entity.substring(6)); } if (entity.startsWith("domain-")) { return new Domain(entity.substring(7)); } if (entity.startsWith("project-")) { int idx = entity.indexOf('-', 8); String team = entity.substring(8, idx); String projectId = entity.substring(idx + 1); return new Project(Project.ProjectRole.valueOf(team.toUpperCase()), projectId); } return new RawEntity(entity); } }
@Test public void testToBuilder() { assertEquals(ACL, ACL.toBuilder().build()); Acl acl = ACL.toBuilder() .setEtag("otherEtag") .setId("otherId") .setRole(Role.READER) .setEntity(User.ofAllUsers()) .build(); assertEquals(Role.READER, acl.getRole()); assertEquals(User.ofAllUsers(), acl.getEntity()); assertEquals("otherEtag", acl.getEtag()); assertEquals("otherId", acl.getId()); }
@Test public void testOf() { Acl acl = Acl.of(User.ofAllUsers(), Role.READER); assertEquals(User.ofAllUsers(), acl.getEntity()); assertEquals(Role.READER, acl.getRole()); ObjectAccessControl objectPb = acl.toObjectPb(); assertEquals(acl, Acl.fromPb(objectPb)); BucketAccessControl bucketPb = acl.toBucketPb(); assertEquals(acl, Acl.fromPb(bucketPb)); } }
/** Example of updating a blob to be public-read. */ // [TARGET createAcl(BlobId, Acl)] // [VARIABLE "my_unique_bucket"] // [VARIABLE "my_blob_name"] // [VARIABLE 42] public Acl blobToPublicRead(String bucketName, String blobName, long blobGeneration) { // [START storageMakePublic] BlobId blobId = BlobId.of(bucketName, blobName, blobGeneration); Acl acl = storage.createAcl(blobId, Acl.of(User.ofAllUsers(), Role.READER)); // [END storageMakePublic] return acl; }