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 18e95e193e..100f5b6ce5 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
@@ -1103,6 +1103,7 @@ private RewriteResponse rewrite(RewriteRequest req, String token) {
Long maxBytesRewrittenPerCall =
req.megabytesRewrittenPerCall != null ? req.megabytesRewrittenPerCall * MEGABYTE : null;
+ StorageObject content = req.overrideInfo ? req.target : null;
Storage.Objects.Rewrite rewrite =
storage
.objects()
@@ -1111,7 +1112,7 @@ private RewriteResponse rewrite(RewriteRequest req, String token) {
req.source.getName(),
req.target.getBucket(),
req.target.getName(),
- req.overrideInfo ? req.target : null)
+ content)
.setSourceGeneration(req.source.getGeneration())
.setRewriteToken(token)
.setMaxBytesRewrittenPerCall(maxBytesRewrittenPerCall)
@@ -1132,6 +1133,7 @@ private RewriteResponse rewrite(RewriteRequest req, String token) {
.setDestinationPredefinedAcl(Option.PREDEFINED_ACL.getString(req.targetOptions))
.setUserProject(userProject)
.setDestinationKmsKeyName(Option.KMS_KEY_NAME.getString(req.targetOptions));
+ rewrite.setDisableGZipContent(content == null);
HttpHeaders requestHeaders = rewrite.getRequestHeaders();
setEncryptionHeaders(requestHeaders, SOURCE_ENCRYPTION_KEY_PREFIX, req.sourceOptions);
setEncryptionHeaders(requestHeaders, ENCRYPTION_KEY_PREFIX, req.targetOptions);
@@ -1460,6 +1462,7 @@ public HmacKey createHmacKey(String serviceAccountEmail, Map