JCLOUDS-912: GCS upload InputStream work around
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c2a22bc3 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c2a22bc3 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c2a22bc3 Branch: refs/heads/master Commit: c2a22bc32ca5e3f82c6cb5fedcb1924bc251b20f Parents: 5d43731 Author: Andrew Gaul <[email protected]> Authored: Fri Jun 3 12:38:43 2016 -0700 Committer: Andrew Gaul <[email protected]> Committed: Fri Jun 3 12:38:43 2016 -0700 ---------------------------------------------------------------------- .../blobstore/GoogleCloudStorageBlobStore.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/c2a22bc3/providers/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/blobstore/GoogleCloudStorageBlobStore.java ---------------------------------------------------------------------- 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 10ebfc1..1cb927e 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 @@ -214,7 +214,9 @@ public final class GoogleCloudStorageBlobStore extends BaseBlobStore { @Override public String putBlob(String container, Blob blob, PutOptions options) { - if (options.isMultipart()) { + if (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());
