s3 0.1.3

A lean, modern, unofficial S3-compatible client for Rust.
Documentation

s3-rs

crates.io docs.rs CI

A lean, modern, unofficial S3-compatible client for Rust.

Quick start (async)

use s3::{Auth, Client};

# async fn demo() -> Result<(), s3::Error> {
let client = Client::builder("https://s3.amazonaws.com")?
    .region("us-east-1")
    .auth(Auth::from_env()?)
    .build()?;

let obj = client.objects().get("my-bucket", "path/to/object.txt").send().await?;
let bytes = obj.bytes().await?;
println!("{} bytes", bytes.len());
# Ok(())
# }

Blocking

Enable blocking and choose one TLS backend (rustls or native-tls):

cargo add s3 --no-default-features --features blocking,rustls
use s3::{Auth, BlockingClient};

fn demo() -> Result<(), s3::Error> {
    let client = BlockingClient::builder("https://s3.amazonaws.com")?
        .region("us-east-1")
        .auth(Auth::from_env()?)
        .build()?;

    let obj = client.objects().get("my-bucket", "path/to/object.txt").send()?;
    let bytes = obj.bytes()?;
    println!("{} bytes", bytes.len());
    Ok(())
}

Features

  • async (default), blocking
  • multipart, checksums, tracing, metrics
  • providers (endpoint presets)

Examples

See examples/README.md.

MSRV: Rust 1.92.