2 个不稳定版本
0.35.0 | 2023年6月5日 |
---|---|
0.34.0 | 2023年6月5日 |
#7 在 #wasabi
每月26次下载
180KB
3.5K SLoC
注意:此仓库是 rust-s3 的分支,但进行了许多简化,如只支持 tokio 异步,没有阻塞实现,宏使用几乎为零。这个分支之所以存在,仅仅是因为宏展开相当不准确,让我在开发中感到沮丧。此外,在使用 S3 API 时通常使用异步代码,因此我不觉得需要携带所有“互斥宏”的额外重量来支持每个小特性。
rust-s3-async 文档
Rust 库,用于操作 Amazon S3 或任意 S3 兼容 API,完全兼容 async/await 和 futures ^0.3
。
简介
对 Amazon S3 的简洁接口,以及 Backblaze B2、Wasabi、Yandex、Minio 或 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
-tokio
运行时和native-tls
实现fail-on-err
- 任何错误都引发恐慌no-verify-ssl
- 禁用端点的 SSL 验证,对于自定义区域很有用
路径或子域样式 URL 和头信息
Bucket
结构体提供了为 路径风格
路径的构造函数,默认风格是 subdomain
。 Bucket
提供了配置和访问 路径风格
配置的方法。
存储桶
创建 |
异步 |
删除 |
异步 |
列表 |
异步 |
存在 |
异步 |
预签名
POST |
预签名上传 |
PUT |
预签名上传 |
GET |
预签名下载 |
DELETE |
预签名删除 |
GET
获取对象有几种不同的选项,方法在 tokio::io::AsyncWriteExt
上是通用的。
异步/同步/异步-阻塞 |
获取对象 |
异步/同步/异步-阻塞 |
获取对象流 |
异步/同步/异步-阻塞 |
将对象写入写入器 |
PUT
每个 GET
方法都有一个相应的 PUT
方法,并且 tokio
方法在 tokio::io::AsyncReadExt
上是通用的。
异步/同步/异步-阻塞 |
上传对象 |
异步/同步/异步-阻塞 |
带有内容类型上传对象 |
异步/同步/异步-阻塞 |
上传对象流 |
列表
异步/同步/异步-阻塞 |
列表 |
DELETE
异步/同步/异步-阻塞 |
删除对象 |
位置
异步/同步/异步-阻塞 |
位置 |
标签
异步/同步/异步-阻塞 |
设置对象标签 |
异步/同步/异步-阻塞 |
获取对象标签 |
头部
异步/同步/异步-阻塞 |
获取对象头部 |
用法(在 Cargo.toml
中)
[dependencies]
rust-s3-async = "0.34.0"
依赖项
~14–30MB
~443K SLoC