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

Download history 12/week @ 2024-04-18 5/week @ 2024-04-25 164/week @ 2024-05-16 18/week @ 2024-05-23 19/week @ 2024-05-30 4/week @ 2024-06-06 5/week @ 2024-06-13 10/week @ 2024-06-27 61/week @ 2024-07-04 2/week @ 2024-07-18 90/week @ 2024-07-25 12/week @ 2024-08-01

104 每月下载量

MIT 许可证

215KB
4K SLoC

build MIT licensed

s3-tokio 文档

用于操作 Amazon S3 或任意 S3 兼容 API 的 Rust 库,完全兼容 async/awaitfutures ^0.3

仅支持 tokiorustls

[!NOTE] 此存储库是 rust-s3-async(是 rust-s3 的分支) 的分支,但只支持 tokiorustls。还更新了依赖项。(例如 hyper ^1

简介

面向 Amazon S3 的简单接口,以及 Backblaze B2、Wasabi、Yandex、Minio、Cloudflare R2 或 Google Cloud Storage 等兼容 S3 的对象存储 API。支持:putgetlistdelete、对 tagslocation 的操作,以及 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