5 个版本 (3 个重大更新)
0.4.0 | 2022 年 12 月 20 日 |
---|---|
0.3.0 | 2022 年 11 月 24 日 |
0.2.1 | 2022 年 9 月 9 日 |
0.2.0 | 2022 年 3 月 25 日 |
0.1.0 | 2019 年 8 月 27 日 |
#1347 in Web 编程
在 2 crates 中使用
57KB
973 行
高级同步 AWS S3 Rust 客户端库。
此客户端包装了 Rusoto S3,并提供以下功能
- 检查桶或对象是否存在,
- 以迭代器形式列出匹配前缀的对象,透明处理分页,
- 通过分块 API 上传大对象,并通过回调跟踪上传进度,
- 通过批量删除 API 删除单个或多个对象,
- 使用
ensure
crate 延迟执行对象的上传和删除。
示例用法
use s3_sync::{S3, Region, ObjectBodyMeta, BucketKey, Bucket};
use std::io::Cursor;
use std::io::Read;
let test_bucket = std::env::var("S3_TEST_BUCKET").expect("S3_TEST_BUCKET not set");
let test_key = "foobar.test";
let s3 = S3::default();
let bucket = s3.check_bucket_exists(Bucket::from_name(test_bucket)).expect("check if bucket exists")
.left().expect("existing bucket");
let bucket_key = BucketKey::from_key(&bucket, test_key);
let body = Cursor::new(b"hello world".to_vec());
let object = s3.put_object(bucket_key, body, ObjectBodyMeta::default()).unwrap();
let mut body = Vec::new();
s3.get_body(&object).expect("object body").read_to_end(&mut body).unwrap();
assert_eq!(&body, b"hello world");
依赖项
~23MB
~399K SLoC