jclouds-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Gaul <g...@apache.org>
Subject Re: Range download
Date Tue, 19 May 2020 13:01:48 GMT
On Mon, May 18, 2020 at 08:00:16PM -0000, John Calcote wrote:
> I'm trying to create a sort of multi-part download mechanism using jclouds download with
a GetOption of "range". I'd like to just download 5MB ranges until I run out of file to download.
The doc on the use of this option is a bit sparse. Can someone help me understand the semantics
of download with a range option? 
> 
> Here's what I'd like to do:
> 
> long start = 0;
> long size = 5 * 1024 * 1024;
> long length = size;
> 
> while (length < size) {
>     long limit = start + size
>     Blob blob = getBlob(container, key, range(start, limit - 1));
>     ContentMetadata meta = blob.getMetadata().getContentMetadata();
>     long length = meta.getContentLength();
> 
>     // stream 'length' bytes into a buffer and process the buffer here
> 
>     start = limit;
> }
> 
> Assumptions:
> 1) content length will return the actual size downloaded if it's less than the range
size specified.
> 2) It's OK to request a range of bytes that's outside the file extant - you'll just get
back a length of zero.

BlobStore.getBlob takes an optional argument that you can populate via:

    new GetOptions().range(start, size)

Note that this range is inclusive.

-- 
Andrew Gaul
http://gaul.org/

Mime
View raw message