@Override public List<ObjectAccessControl> listAcls(String bucket, String object, Long generation) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_LIST_OBJECT_ACLS); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .list(bucket, object) .setGeneration(generation) .execute() .getItems(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); throw translate(ex); } finally { scope.close(); span.end(); } }
@Override public ObjectAccessControl getAcl(String bucket, String object, Long generation, String entity) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_GET_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .get(bucket, object, entity) .setGeneration(generation) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); StorageException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { return null; } throw serviceException; } finally { scope.close(); span.end(); } }
@Override public boolean deleteAcl(String bucket, String object, Long generation, String entity) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_DELETE_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { storage .objectAccessControls() .delete(bucket, object, entity) .setGeneration(generation) .execute(); return true; } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); StorageException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { return false; } throw serviceException; } finally { scope.close(); span.end(); } }
@Override public ObjectAccessControl createAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_CREATE_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .insert(acl.getBucket(), acl.getObject(), 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 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(); } }
// Create the Storage service object Storage storage = new Storage(httpTransport, jsonFactory, credential); // Create a new batch request BatchRequest batch = storage.batch(); // Add some requests to the batch request storage.objectAccessControls().insert("bucket-name", "object-key1", new ObjectAccessControl().setEntity("user-123423423").setRole("READER")) .queue(batch, callback); storage.objectAccessControls().insert("bucket-name", "object-key2", new ObjectAccessControl().setEntity("user-guy@example.com").setRole("READER")) .queue(batch, callback); storage.objectAccessControls().insert("bucket-name", "object-key3", new ObjectAccessControl().setEntity("group-foo@googlegroups.com").setRole("OWNER")) .queue(batch, callback); // Execute the batch request. The individual callbacks will be called when requests finish. batch.execute();
@Override public List<ObjectAccessControl> listAcls(String bucket, String object, Long generation) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_LIST_OBJECT_ACLS); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .list(bucket, object) .setGeneration(generation) .execute() .getItems(); } 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; }
@Override public ObjectAccessControl getAcl(String bucket, String object, Long generation, String entity) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_GET_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .get(bucket, object, entity) .setGeneration(generation) .execute(); } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); StorageException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { return null; } throw serviceException; } finally { scope.close(); span.end(); } }
@Override public boolean deleteAcl(String bucket, String object, Long generation, String entity) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_DELETE_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { storage .objectAccessControls() .delete(bucket, object, entity) .setGeneration(generation) .execute(); return true; } catch (IOException ex) { span.setStatus(Status.UNKNOWN.withDescription(ex.getMessage())); StorageException serviceException = translate(ex); if (serviceException.getCode() == HTTP_NOT_FOUND) { return false; } throw serviceException; } finally { scope.close(); span.end(); } }
@Override public ObjectAccessControl createAcl(ObjectAccessControl acl) { Span span = startSpan(HttpStorageRpcSpans.SPAN_NAME_CREATE_OBJECT_ACL); Scope scope = tracer.withSpan(span); try { return storage .objectAccessControls() .insert(acl.getBucket(), acl.getObject(), 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 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(); } }