r2-s3

Crates.ior2-s3
lib.rsr2-s3
version0.1.7
created_at2025-05-09 01:20:36.763774+00
updated_at2025-06-27 03:18:54.709048+00
descriptiona simple cloudflare r2 or asw s3 storage client wrapper
homepage
repository
max_upload_size
id1666040
size78,747
taohua (datewu)

documentation

README

Usage

The following four environment variables must be set before setup the client

export AWS_ACCESS_KEY_ID=your_key_id
export AWS_SECRET_ACCESS_KEY=your_access_key
export AWS_REGION=auto

export R2_S3_URL=https://your-r2-hash-url.r2.cloudflarestorage.com

Demo

use r2_s3::Client;

#[tokio::main]
async fn main() {
    let mut args = env::args();
    args.next();
    let bucket = args.next().unwrap_or("your-bucket".to_string());
    let key = args.next().unwrap_or("your_key".to_string());
    let client = Client::new(&bucket).await;

    // presign a object
    let url = client
        .presigned_put(&key, None)
        .await
        .expect("should be ok");
    println!("presign put url for {bucket} {key} is: \n'{url}'");

    // delete the object
    client.delete(&key).unwrap();

    // ... see curd mod for more operators
}

Commit count: 0

cargo fmt