#Amazon #AWS #S3 #Wasabi #Minio

rust-s3

Tiny Rust library for working with Amazon S3 and compatible object storage APIs

54 releases (18 breaking)

✓ Uses Rust 2018 edition

new 0.20.0 Mar 28, 2020
0.19.0-beta.1 Jan 24, 2020
0.19.0-alpha.1 Dec 10, 2019
0.18.5 Nov 29, 2019
0.2.3 Jul 8, 2016

#15 in Network programming

Download history 2277/week @ 2019-12-02 2814/week @ 2019-12-09 1688/week @ 2019-12-16 1084/week @ 2019-12-23 1190/week @ 2019-12-30 2867/week @ 2020-01-06 1604/week @ 2020-01-13 2129/week @ 2020-01-20 1562/week @ 2020-01-27 2386/week @ 2020-02-03 2452/week @ 2020-02-10 2706/week @ 2020-02-17 2525/week @ 2020-02-24 2621/week @ 2020-03-02 2170/week @ 2020-03-09 1510/week @ 2020-03-16

9,502 downloads per month
Used in 5 crates

MIT license

86KB
1.5K SLoC

MIT licensed

rust-s3 [docs]

Rust library for working with Amazon S3 or arbitrary S3 compatible APIs, fully compatible with async/await and futures ^0.3

Intro

Modest interface towards Amazon S3, as well as S3 compatible object storage APIs such as Wasabi or Minio. Supports put, get, list, and delete, operations on tags and location.

Supports streaming S3 contents, generic over T: Write, as well as streaming local paths to S3.

What is cool -> Broken and tracked at #54

The main cool feature is that put commands return a presigned link to the file you uploaded This means you can upload to s3, and give the link to select people without having to worry about publicly accessible files on S3.

Configuration

Getter and setter functions exist for all Link params... You don't really have to touch anything there, maybe amz-expire, it is configured for one week which is the maximum Amazon allows ATM.

Usage

In your Cargo.toml

[dependencies]
rust-s3 = "0.19.4"

Disable SSL verification for endpoints, useful for custom regions

[dependencies]
rust-s3 = {version = "0.19.4", features = ["no-verify-ssl"]}

AWS and Custom (Minio) Example

Dependencies

~8–11MB
~232K SLoC