Repository: jclouds
Updated Branches:
  refs/heads/master 90fac3b68 -> 1eec2b6e0


JCLOUDS-1367: Return InputStream from getBlob

Previously filesystem and transient returned ByteSource while all
other providers returned InputStream.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/1eec2b6e
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/1eec2b6e
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/1eec2b6e

Branch: refs/heads/master
Commit: 1eec2b6e01fe95f8edef1f3787e7fcba07f5b2f1
Parents: 90fac3b
Author: Andrew Gaul <[email protected]>
Authored: Sat Mar 10 11:13:39 2018 -0800
Committer: Andrew Gaul <[email protected]>
Committed: Sat Mar 24 12:13:25 2018 -0700

----------------------------------------------------------------------
 .../jclouds/blobstore/config/LocalBlobStore.java  | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/1eec2b6e/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java 
b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
index f440312..98c006d 100644
--- a/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
+++ b/blobstore/src/main/java/org/jclouds/blobstore/config/LocalBlobStore.java
@@ -84,6 +84,7 @@ import org.jclouds.io.ByteStreams2;
 import org.jclouds.io.ContentMetadata;
 import org.jclouds.io.ContentMetadataCodec;
 import org.jclouds.io.Payload;
+import org.jclouds.io.payloads.InputStreamPayload;
 import org.jclouds.logging.Logger;
 import org.jclouds.util.Closeables2;
 
@@ -719,7 +720,12 @@ public final class LocalBlobStore implements BlobStore {
                      "bytes " + offset + "-" + last + "/" + 
blob.getPayload().getContentMetadata().getContentLength());
             }
             ContentMetadata cmd = blob.getPayload().getContentMetadata();
-            blob.setPayload(ByteSource.concat(streams.build()));
+            // return InputStream to more closely follow real blobstore
+            try {
+               
blob.setPayload(ByteSource.concat(streams.build()).openStream());
+            } catch (IOException ioe) {
+               throw new RuntimeException(ioe);
+            }
             HttpUtils.copy(cmd, blob.getPayload().getContentMetadata());
             blob.getPayload().getContentMetadata().setContentLength(size);
             blob.getMetadata().setSize(size);
@@ -743,7 +749,15 @@ public final class LocalBlobStore implements BlobStore {
 
    private Blob copyBlob(Blob blob) {
       Blob returnVal = 
blobFactory.create(BlobStoreUtils.copy(blob.getMetadata()));
-      returnVal.setPayload(blob.getPayload());
+      // return InputStream to more closely follow real blobstore
+      Payload payload;
+      try {
+         payload = new InputStreamPayload(blob.getPayload().openStream());
+      } catch (IOException ioe) {
+         throw new RuntimeException(ioe);
+      }
+      payload.setContentMetadata(blob.getMetadata().getContentMetadata());
+      returnVal.setPayload(payload);
       copyPayloadHeadersToBlob(blob.getPayload(), returnVal);
       return returnVal;
    }

Reply via email to