This is an automated email from the ASF dual-hosted git repository.
gaul pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jclouds.git
The following commit(s) were added to refs/heads/master by this push:
new 6b51855365 JCLOUDS-1605: Return correct length in GCS getBlob
6b51855365 is described below
commit 6b5185536586cd89c9645c37052d60c4f6c60a73
Author: Andrew Gaul <[email protected]>
AuthorDate: Wed Nov 27 12:54:21 2024 -0800
JCLOUDS-1605: Return correct length in GCS getBlob
Range requests could cause the payload size to be smaller than the
object size.
---
.../googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git
a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
index b70749212a..d053581f32 100644
---
a/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
+++
b/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java
@@ -250,10 +250,12 @@ public final class GoogleCloudStorageBlobStore extends
BaseBlobStore {
org.jclouds.http.options.GetOptions httpOptions =
blob2ObjectGetOptions.apply(options);
MutableBlobMetadata metadata = objectToBlobMetadata.apply(gcsObject);
Blob blob = new BlobImpl(metadata);
- // TODO: Does getObject not get the payload?!
Payload payload = api.getObjectApi().download(container,
Strings2.urlEncode(name), httpOptions).getPayload();
+ long contentLength = payload.getContentMetadata().getContentLength();
payload.setContentMetadata(metadata.getContentMetadata()); // Doing this
first retains it on setPayload.
blob.setPayload(payload);
+ // getObject() returns the full object length but download() could be
smaller due to range requests.
+ payload.getContentMetadata().setContentLength(contentLength);
return blob;
}