GCS client library doesn't support ACL properties when performing a copy/rewrite operation.
Storage.CopyRequest copyRequest = Storage.CopyRequest.newBuilder()
.setSource(sourceBucketName, sourcePath)
.setTarget(BlobId.of(destinationBucketName, destinationPath),
BlobTargetOption.predefinedAcl(PredefinedAcl.PUBLIC_READ))
.build();
storage.copy(copyRequest).getResult();
Issue is predefinedAcl isn't being set in rewrite request.
Ref: HttpStorageRpc.java#L797