com.google.cloud.storage
A client for Cloud Storage - Unified object storage.
Here's a simple usage example for using google-cloud from App/Compute Engine. This example shows how to create a Storage blob. For the complete source code see CreateBlob.java.
Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of("bucket", "blob_name");
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
Blob blob = storage.create(blobInfo, "Hello, Cloud Storage!".getBytes(UTF_8));
This second example shows how to update the blob's content if the blob exists. For the complete source code see UpdateBlob.java.
Storage storage = StorageOptions.getDefaultInstance().getService();
BlobId blobId = BlobId.of("bucket", "blob_name");
Blob blob = storage.get(blobId);
if (blob != null) {
byte[] prevContent = blob.getContent();
System.out.println(new String(prevContent, UTF_8));
WritableByteChannel channel = blob.writer();
channel.write(ByteBuffer.wrap("Updated content".getBytes(UTF_8)));
channel.close();
}
When using google-cloud from outside of App/Compute Engine, you have to specify a project ID and provide credentials.
com.google.cloud.storage.spi
com.google.cloud.storage.spi.v1
com.google.cloud.storage.testing
A testing helper for Google Cloud Storage.
A simple usage example:
Before the test:
RemoteStorageHelper helper = RemoteStorageHelper.create();
Storage storage = helper.getOptions().getService();
String bucket = RemoteStorageHelper.generateBucketName();
storage.create(BucketInfo.of(bucket));
After the test:
RemoteStorageHelper.forceDelete(storage, bucket, 5, TimeUnit.SECONDS);
com.google.storage.v2
The interfaces provided are listed below, along with usage samples.
StorageClient
Service Description: ## API Overview and Naming Syntax
The GCS gRPC API allows applications to read and write data through the abstractions of buckets and objects. For a description of these abstractions please see https://cloud.google.com/storage/docs.
Resources are named as follows: - Projects are referred to as they are defined by the Resource
Manager API, using strings like projects/123456
or projects/my-string-id
. - Buckets are named
using string names of the form: projects/{project}/buckets/{bucket}
For globally unique
buckets, _
may be substituted for the project. - Objects are uniquely identified by their name
along with the name of the bucket they belong to, as separate strings in this API. For example:
ReadObjectRequest { bucket: 'projects/_/buckets/my-bucket' object: 'my-object' } Note that
object names can contain /
characters, which are treated as any other character (no special
directory semantics).
Sample for StorageClient:
try (StorageClient storageClient = StorageClient.create()) {
StartResumableWriteRequest request =
StartResumableWriteRequest.newBuilder()
.setWriteObjectSpec(WriteObjectSpec.newBuilder().build())
.setCommonObjectRequestParams(CommonObjectRequestParams.newBuilder().build())
.setCommonRequestParams(CommonRequestParams.newBuilder().build())
.build();
StartResumableWriteResponse response = storageClient.startResumableWrite(request);
}