9 个版本
0.39.4 | 2024 年 5 月 16 日 |
---|---|
0.39.3 | 2024 年 4 月 11 日 |
0.39.1 | 2024 年 3 月 27 日 |
0.38.0 | 2024 年 2 月 11 日 |
0.37.2 | 2024 年 2 月 11 日 |
#2 在 #wasabi 中
104 每月下载量
215KB
4K SLoC
s3-tokio 文档
用于操作 Amazon S3 或任意 S3 兼容 API 的 Rust 库,完全兼容 async/await 和 futures ^0.3
。
仅支持 tokio
和 rustls
。
[!NOTE] 此存储库是 rust-s3-async(是 rust-s3 的分支) 的分支,但只支持
tokio
和rustls
。还更新了依赖项。(例如hyper ^1
)
简介
面向 Amazon S3 的简单接口,以及 Backblaze B2、Wasabi、Yandex、Minio、Cloudflare R2 或 Google Cloud Storage 等兼容 S3 的对象存储 API。支持:put
、get
、list
、delete
、对 tags
和 location
的操作,以及 head
。
此外,还有一个专门的 presign_get
Bucket
方法。这意味着您可以将文件上传到 S3,并给选定的链接而不必担心 S3 上的公开文件。这也意味着您可以提供 PUT
预签名 URL,这意味着他们可以在预签名 URL 期间将文件上传到 S3 的特定键。
快速入门
阅读并运行 examples
文件夹中的示例,确保您有运行所使用的有效凭证。
# tokio, default
cargo run --example tokio
# minio
# First, start Minio on port 9000.
AWS_ACCESS_KEY_ID="minioadmin" \
AWS_SECRET_ACCESS_KEY="minioadmin" \
cargo run --example minio
# r2
cargo run --example r2
# google cloud
cargo run --example google-cloud
功能
有很多各种功能,可以满足各种用例,请参阅 s3/Cargo.toml
获取完整列表。以下是各种有用功能的表格以及每个功能的简短描述。
default
- 仅在出错时失败fail-on-err
- 在任何错误上引发恐慌no-verify-ssl
- 禁用端点的SSL验证,适用于自定义区域
路径或子域样式URL和头信息
Bucket
结构体提供了对 path-style
路径的构造函数,默认是 subdomain
样式。Bucket
提供了配置和访问 path-style
配置的方法。
存储桶
创建 |
异步 |
删除 |
异步 |
列表 |
异步 |
存在 |
异步 |
预签名
POST |
预签名上传 |
PUT |
预签名上传 |
GET |
预签名获取 |
DELETE |
预签名删除 |
GET
获取对象有多种选项,方法对 tokio::io::AsyncWriteExt
是通用的。
异步/同步/异步-阻塞 |
获取对象 |
异步/同步/异步-阻塞 |
获取对象流 |
异步/同步/异步-阻塞 |
将对象写入写入器 |
PUT
每个 GET
方法都有一个对应的 PUT
方法,并且 tokio
方法对 tokio::io::AsyncReadExt
是通用的。
异步/同步/异步-阻塞 |
上传对象 |
异步/同步/异步-阻塞 |
带内容类型上传对象 |
异步/同步/异步-阻塞 |
通过流上传对象 |
列表
异步/同步/异步-阻塞 |
列表 |
DELETE
异步/同步/异步-阻塞 |
删除对象 |
位置
异步/同步/异步-阻塞 |
位置 |
标签
异步/同步/异步-阻塞 |
添加对象标签 |
异步/同步/异步-阻塞 |
获取对象标签 |
头部
异步/同步/异步-阻塞 |
获取对象头部 |
使用(在 Cargo.toml
中)
[dependencies]
s3-tokio = "0.39"
依赖
~21–31MB
~589K SLoC