Skip to content

Commit 1b29001

Browse files
Fix documentation around updating blob metadata (#5173)
* Fix documentation around updating blob metadata * Fix documentation around updating blob metadata
1 parent 7d47fce commit 1b29001

2 files changed

Lines changed: 40 additions & 12 deletions

File tree

google-cloud-clients/google-cloud-storage/src/main/java/com/google/cloud/storage/Blob.java

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -512,17 +512,33 @@ public Blob reload(BlobSourceOption... options) {
512512
* current blob metadata are at their latest version use the {@code metagenerationMatch} option:
513513
* {@code newBlob.update(BlobTargetOption.metagenerationMatch())}.
514514
*
515-
* <p>Original metadata are merged with metadata in the provided in this {@code blob}. To replace
516-
* metadata instead you first have to unset them. Unsetting metadata can be done by setting this
517-
* {@code blob}'s metadata to {@code null}.
515+
* <p>Original metadata are merged with metadata in the provided {@code blobInfo}. If the original
516+
* metadata already contains a key specified in the provided {@code blobInfo's} metadata map, it
517+
* will be replaced by the new value. Removing metadata can be done by setting that metadata's
518+
* value to {@code null}.
518519
*
519-
* <p>Example of replacing blob's metadata.
520+
* <p>Example of adding new metadata values or updating existing ones.
520521
*
521522
* <pre>{@code
523+
* String bucketName = "my_unique_bucket";
524+
* String blobName = "my_blob_name";
525+
* Map<String, String> newMetadata = new HashMap<>();
526+
* newMetadata.put("keyToAddOrUpdate", "value");
527+
* Blob blob = storage.update(BlobInfo.newBuilder(bucketName, blobName)
528+
* .setMetadata(newMetadata)
529+
* .build());
530+
* }</pre>
531+
*
532+
* <p>Example of removing metadata values.
533+
*
534+
* <pre>{@code
535+
* String bucketName = "my_unique_bucket";
536+
* String blobName = "my_blob_name";
522537
* Map<String, String> newMetadata = new HashMap<>();
523-
* newMetadata.put("key", "value");
524-
* blob.toBuilder().setMetadata(null).build().update();
525-
* Blob updatedBlob = blob.toBuilder().setMetadata(newMetadata).build().update();
538+
* newMetadata.put("keyToRemove", null);
539+
* Blob blob = storage.update(BlobInfo.newBuilder(bucketName, blobName)
540+
* .setMetadata(newMetadata)
541+
* .build());
526542
* }</pre>
527543
*
528544
* @param options update options

google-cloud-clients/google-cloud-storage/src/main/java/com/google/cloud/storage/Storage.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1718,17 +1718,29 @@ Blob create(
17181718

17191719
/**
17201720
* Updates blob information. Original metadata are merged with metadata in the provided {@code
1721-
* blobInfo}. To replace metadata instead you first have to unset them. Unsetting metadata can be
1722-
* done by setting the provided {@code blobInfo}'s metadata to {@code null}.
1721+
* blobInfo}. If the original metadata already contains a key specified in the provided {@code
1722+
* blobInfo's} metadata map, it will be replaced by the new value. Removing metadata can be done
1723+
* by setting that metadata's value to {@code null}.
1724+
*
1725+
* <p>Example of adding new metadata values or updating existing ones.
1726+
*
1727+
* <pre>{@code
1728+
* String bucketName = "my_unique_bucket";
1729+
* String blobName = "my_blob_name";
1730+
* Map<String, String> newMetadata = new HashMap<>();
1731+
* newMetadata.put("keyToAddOrUpdate", "value");
1732+
* Blob blob = storage.update(BlobInfo.newBuilder(bucketName, blobName)
1733+
* .setMetadata(newMetadata)
1734+
* .build());
1735+
* }</pre>
17231736
*
1724-
* <p>Example of replacing blob's metadata.
1737+
* <p>Example of removing metadata values.
17251738
*
17261739
* <pre>{@code
17271740
* String bucketName = "my_unique_bucket";
17281741
* String blobName = "my_blob_name";
17291742
* Map<String, String> newMetadata = new HashMap<>();
1730-
* newMetadata.put("key", "value");
1731-
* storage.update(BlobInfo.newBuilder(bucketName, blobName).setMetadata(null).build());
1743+
* newMetadata.put("keyToRemove", null);
17321744
* Blob blob = storage.update(BlobInfo.newBuilder(bucketName, blobName)
17331745
* .setMetadata(newMetadata)
17341746
* .build());

0 commit comments

Comments
 (0)