From 9e73bbec16cbf91c5f228d4c3ae99c6c526081f8 Mon Sep 17 00:00:00 2001 From: Andrew Gaul Date: Sun, 6 Aug 2017 13:13:15 -0700 Subject: [PATCH] JCLOUDS-1327: Do not try GCS MPU if length is zero References JCLOUDS-912. --- .../blobstore/GoogleCloudStorageBlobStore.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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 c86dcc8d9a..b58f25ce46 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 @@ -215,13 +215,13 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { @Override public String putBlob(String container, Blob blob, PutOptions options) { - if (options.isMultipart() || !blob.getPayload().isRepeatable()) { + long length = checkNotNull(blob.getPayload().getContentMetadata().getContentLength()); + + if (length != 0 && (options.isMultipart() || !blob.getPayload().isRepeatable())) { // JCLOUDS-912 prevents using single-part uploads with InputStream payloads. // Work around this with multi-part upload which buffers parts in-memory. return putMultipartBlob(container, blob, options); } else { - checkNotNull(blob.getPayload().getContentMetadata().getContentLength()); - ObjectTemplate template = blobMetadataToObjectTemplate.apply(blob.getMetadata()); HashCode md5 = blob.getMetadata().getContentMetadata().getContentMD5AsHashCode();