Expand description

CONcurrent DOWnloads from AWS S3

Download speed from S3 can be significantly improved by downloading parts of the file concurrently. This crate does exactly that.

Unlike e.g. the AWS Java SDK this library does not download the parts as uploaded but ranges.


use condow_rusoto::*;
use condow_rusoto::config::Config;

let client = S3ClientWrapper::new(Region::default());
let condow = client.condow(Config::default()).unwrap();

let s3_obj = Bucket::new("my_bucket").object("my_object");

let stream = condow.blob().at(s3_obj).range(23..46).download().await.unwrap();
let downloaded_bytes: Vec<u8> = stream.into_vec().await.unwrap();

Modules

Adapter for crate::Condow to access BLOBs to be downloaded

Configuration items

Error types returned by Condow

Probes & Instrumentation

Implementations of async readers for downloads

Stream implememtations used by Condow

Structs

S3 bucket name

The CONcurrent DOWnloader

An inclusive range which can not have a length of 0.

S3 object key

A range defined by an offset and a length.

A request for a download from a specific location

A request for a download where the location is not yet known

A client for the Amazon S3 API.

Just a wrapper around a client to implement the trait CondowClient on.

Full “path” to an S3 object

Enums

A closed range

A range which specifies a download

An open range

An AWS region.

Traits

A common interface for downloading

Downloads from a location specified by a &str.