diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java index 835e0d4536..0604a11707 100644 --- a/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java +++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/BlobInfo.java @@ -72,7 +72,6 @@ public StorageObject apply(BlobInfo blobInfo) { return blobInfo.toPb(); } }; - private static final long serialVersionUID = -5625857076205028976L; private final BlobId blobId; private final String generatedId; @@ -323,6 +322,23 @@ public Builder setTimeStorageClassUpdated(Long timeStorageClassUpdated) { abstract Builder setCustomerEncryption(CustomerEncryption customerEncryption); + /** + * Sets a customer-managed key for server-side encryption of the blob. Note that when a KMS key + * is used to encrypt Cloud Storage object, object resource metadata will store the version of + * the KMS cryptographic. If a {@code Blob} with KMS Key metadata is used to upload a new + * version of the object then the existing kmsKeyName version value can't be used in the upload + * request and the client instead ignores it. + * + *
Example of setting the KMS key name + * + *
{@code
+ * String bucketName = "my-unique-bucket";
+ * String blobName = "my-blob-name";
+ * String kmsKeyName = "projects/project-id/locations/us/keyRings/lab1/cryptoKeys/test-key"
+ * BlobInfo blobInfo = BlobInfo.newBuilder(bucketName, blobName).build();
+ * Blob blob = storage.create(blobInfo, Storage.BlobTargetOption.kmsKeyName(kmsKeyName));
+ * }
+ */
abstract Builder setKmsKeyName(String kmsKeyName);
/** Sets the blob's event-based hold. */
@@ -1095,7 +1111,6 @@ public ObjectAccessControl apply(Acl acl) {
if (retentionExpirationTime != null) {
storageObject.setRetentionExpirationTime(new DateTime(retentionExpirationTime));
}
-
storageObject.setKmsKeyName(kmsKeyName);
storageObject.setEventBasedHold(eventBasedHold);
storageObject.setTemporaryHold(temporaryHold);
diff --git a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java
index d7b7baa0b4..0960f91ffb 100644
--- a/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java
+++ b/google-cloud-storage/src/main/java/com/google/cloud/storage/spi/v1/HttpStorageRpc.java
@@ -832,6 +832,10 @@ public String open(StorageObject object, Map