Skip to content

Commit

Permalink
fix: Blob API Doc is confusing (#233)
Browse files Browse the repository at this point in the history
* fix: blob api doc is confusing

* fix: blob api doc is confusing

* fix: blob api doc is confusing

* fix: blob api doc is confusing

* fix: deprecate blob.update() and modify documentation of storage.update() methods
  • Loading branch information
dmitry-fa committed Apr 14, 2020
1 parent c9b23b3 commit b5208b8
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 5 deletions.
Expand Up @@ -52,12 +52,26 @@
import java.util.concurrent.TimeUnit;

/**
* A Google cloud storage object.
* An object in Google Cloud Storage. A {@code Blob} object includes the {@code BlobId} instance,
* the set of properties inherited from the {@link BlobInfo} class and the {@code Storage} instance.
* The class provides methods to perform operations on the object. Reading a property value does not
* issue any RPC calls. The object content is not stored within the {@code Blob} instance.
* Operations that access the content issue one or multiple RPC calls, depending on the content
* size.
*
* <p>Objects of this class are immutable. Operations that modify the blob like {@link #update} and
* {@link #copyTo} return a new object. To get a {@code Blob} object with the most recent
* information use {@link #reload}. {@code Blob} adds a layer of service-related functionality over
* {@link BlobInfo}.
* {@link #copyTo} return a new object. Any changes to the object in Google Cloud Storage made after
* creation of the {@code Blob} are not visible in the {@code Blob}. To get a {@code Blob} object
* with the most recent information use {@link #reload}.
*
* <p>Example of getting the content of the object in Google Cloud Storage:
*
* <pre>{@code
* BlobId blobId = BlobId.of(bucketName, blobName);
* Blob blob = storage.get(blobId);
* long size = blob.getSize(); // no RPC call is required
* byte[] content = blob.getContent(); // one or multiple RPC calls will be issued
* }</pre>
*/
public class Blob extends BlobInfo {

Expand Down
Expand Up @@ -44,7 +44,21 @@
import java.util.Set;

/**
* Google Storage object metadata.
* Information about an object in Google Cloud Storage. A {@code BlobInfo} object includes the
* {@code BlobId} instance and the set of properties, such as the blob's access control
* configuration, user provided metadata, the CRC32C checksum, etc. Instances of this class are used
* to create a new object in Google Cloud Storage or update the properties of an existing object. To
* deal with existing Storage objects the API includes the {@link Blob} class which extends {@code
* BlobInfo} and declares methods to perform operations on the object. Neither {@code BlobInfo} nor
* {@code Blob} instances keep the object content, just the object properties.
*
* <p>Example of usage {@code BlobInfo} to create an object in Google Cloud Storage:
*
* <pre>{@code
* BlobId blobId = BlobId.of(bucketName, blobName);
* BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build();
* Blob blob = storage.create(blobInfo, "Hello, world".getBytes(StandardCharsets.UTF_8));
* }</pre>
*
* @see <a href="https://cloud.google.com/storage/docs/concepts-techniques#concepts">Concepts and
* Terminology</a>
Expand Down

0 comments on commit b5208b8

Please sign in to comment.