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