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());

Reply via email to