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; }
