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