Refine search
static Acl fromPb(ObjectAccessControl objectAccessControl) { Role role = Role.valueOf(objectAccessControl.getRole()); Entity entity = Entity.fromPb(objectAccessControl.getEntity()); return newBuilder(entity, role) .setEtag(objectAccessControl.getEtag()) .setId(objectAccessControl.getId()) .build(); }
@Override public Acl createAcl(final BlobId blob, final Acl acl) { final ObjectAccessControl aclPb = acl.toObjectPb() .setBucket(blob.getBucket()) .setObject(blob.getName()) .setGeneration(blob.getGeneration()); try { return Acl.fromPb( runWithRetries( new Callable<ObjectAccessControl>() { @Override public ObjectAccessControl call() { return storageRpc.createAcl(aclPb); } }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelperException e) { throw StorageException.translateAndThrow(e); } }
/** * Uploads data to an object in a bucket. * * @param name the name of the destination object. * @param contentType the MIME type of the data. * @param file the file to upload. * @param bucketName the name of the bucket to create the object in. */ public static void uploadFile( String name, String contentType, File file, String bucketName) throws IOException, GeneralSecurityException { InputStreamContent contentStream = new InputStreamContent( contentType, new FileInputStream(file)); // Setting the length improves upload performance contentStream.setLength(file.length()); StorageObject objectMetadata = new StorageObject() // Set the destination object name .setName(name) // Set the access control list to publicly read-only .setAcl(Arrays.asList( new ObjectAccessControl().setEntity("allUsers").setRole("READER"))); // Do the insert Storage client = StorageFactory.getService(); Storage.Objects.Insert insertRequest = client.objects().insert( bucketName, objectMetadata, contentStream); insertRequest.execute(); } // [END upload_stream]
@Test public void testUpdateBlobAcl() { BlobId blobId = BlobId.of(BUCKET_NAME1, BLOB_NAME1, 42L); Acl returnedAcl = ACL.toBuilder().setEtag("ETAG").setId("ID").build(); EasyMock.expect( storageRpcMock.patchAcl( ACL.toObjectPb().setBucket(BUCKET_NAME1).setObject(BLOB_NAME1).setGeneration(42L))) .andReturn(returnedAcl.toObjectPb()); EasyMock.replay(storageRpcMock); initializeService(); Acl acl = storage.updateAcl(blobId, ACL); assertEquals(returnedAcl, acl); }
@Override public Acl updateDefaultAcl(String bucket, Acl acl) { final ObjectAccessControl aclPb = acl.toObjectPb().setBucket(bucket); try { return Acl.fromPb( runWithRetries( new Callable<ObjectAccessControl>() { @Override public ObjectAccessControl call() { return storageRpc.patchDefaultAcl(aclPb); } }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelperException e) { throw StorageException.translateAndThrow(e); } }
ObjectAccessControl newControl = new ObjectAccessControl() .setEntity("allUsers").setRole("READER"); Storage.ObjectAccessControls.Insert request = client.objectAccessControls().insert( Bucket, file, newControl); req.execute();
@Test public void testCreateDefaultBucketAcl() { Acl returnedAcl = ACL.toBuilder().setEtag("ETAG").setId("ID").build(); EasyMock.expect(storageRpcMock.createDefaultAcl(ACL.toObjectPb().setBucket(BUCKET_NAME1))) .andReturn(returnedAcl.toObjectPb()); EasyMock.replay(storageRpcMock); initializeService(); Acl acl = storage.createDefaultAcl(BUCKET_NAME1, ACL); assertEquals(returnedAcl, acl); }
@Override public ObjectAccessControl patchAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_PATCH_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .patch(acl.getBucket(), acl.getObject(), acl.getEntity(), acl) .setGeneration(acl.getGeneration()) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); throw translate(ex); } finally { scope.close(); span.end(); } }
@Override public ObjectAccessControl patchDefaultAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_PATCH_OBJECT_DEFAULT_ACL); Scope scope = tracer.withSpan(span); try { return storage .defaultObjectAccessControls() .patch(acl.getBucket(), acl.getEntity(), acl) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); throw translate(ex); } finally { scope.close(); span.end(); } }
ObjectAccessControl toObjectPb() { ObjectAccessControl objectPb = new ObjectAccessControl(); objectPb.setRole(role().name()); objectPb.setEntity(entity().toPb()); return objectPb; }
@Test public void testCreateBlobAcl() { BlobId blobId = BlobId.of(BUCKET_NAME1, BLOB_NAME1, 42L); Acl returnedAcl = ACL.toBuilder().setEtag("ETAG").setId("ID").build(); EasyMock.expect( storageRpcMock.createAcl( ACL.toObjectPb().setBucket(BUCKET_NAME1).setObject(BLOB_NAME1).setGeneration(42L))) .andReturn(returnedAcl.toObjectPb()); EasyMock.replay(storageRpcMock); initializeService(); Acl acl = storage.createAcl(blobId, ACL); assertEquals(returnedAcl, acl); }
@Override public Acl createDefaultAcl(String bucket, Acl acl) { final ObjectAccessControl aclPb = acl.toObjectPb().setBucket(bucket); try { return Acl.fromPb( runWithRetries( new Callable<ObjectAccessControl>() { @Override public ObjectAccessControl call() { return storageRpc.createDefaultAcl(aclPb); } }, getOptions().getRetrySettings(), EXCEPTION_HANDLER, getOptions().getClock())); } catch (RetryHelperException e) { throw StorageException.translateAndThrow(e); } }
acl.add(new ObjectAccessControl().setEntity("project-owners-projectId").setRole("OWNER"));
@Test public void testUpdateDefaultBucketAcl() { Acl returnedAcl = ACL.toBuilder().setEtag("ETAG").setId("ID").build(); EasyMock.expect(storageRpcMock.patchDefaultAcl(ACL.toObjectPb().setBucket(BUCKET_NAME1))) .andReturn(returnedAcl.toObjectPb()); EasyMock.replay(storageRpcMock); initializeService(); Acl acl = storage.updateDefaultAcl(BUCKET_NAME1, ACL); assertEquals(returnedAcl, acl); }
@Override public ObjectAccessControl patchAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_PATCH_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .patch(acl.getBucket(), acl.getObject(), acl.getEntity(), acl) .setGeneration(acl.getGeneration()) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); throw translate(ex); } finally { scope.close(); span.end(); } }
@Override public ObjectAccessControl patchDefaultAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_PATCH_OBJECT_DEFAULT_ACL); Scope scope = tracer.withSpan(span); try { return storage .defaultObjectAccessControls() .patch(acl.getBucket(), acl.getEntity(), acl) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); throw translate(ex); } finally { scope.close(); span.end(); } }
public static StorageObject uploadSimpleImageAndMakeItPublic( Storage storage, String bucketName, String objectName, InputStream imageData) throws IOException { InputStreamContent mediaContent = new InputStreamContent("image/png", imageData); Storage.Objects.Insert insertObject = storage.objects() .insert(bucketName, null, mediaContent).setName(objectName); insertObject.getMediaHttpUploader().setDisableGZipContent(true); StorageObject uploadedImage = insertObject.execute(); // new acl to make it public ObjectAccessControl publicACLItem = new ObjectAccessControl(); publicACLItem.setEntity("allUsers"); publicACLItem.setRole("READER"); Insert insert = storage.objectAccessControls().insert(bucketName, objectName, publicACLItem); insert.execute(); return uploadedImage; }