4 个版本
0.1.3 | 2022年7月4日 |
---|---|
0.1.2 | 2022年3月16日 |
0.1.1 | 2022年2月24日 |
0.1.0 | 2022年2月14日 |
271 在 HTTP 客户端 中
每月 70 次下载
345KB
7K SLoC
B2-client - 后端无关的 Backblaze B2 API 客户端
B2-client 提供了一个 Rust API,用于访问 Backblaze B2 云存储服务,支持任何异步 HTTP 客户端和任何异步运行时。
默认实现了对 Hyper、Isahc 和 Surf 的支持。
B2-client 的官方仓库位于 SourceHut 的 https://git.sr.ht/~rjframe/b2-client,同时在 Github 上有一个镜像 https://github.com/rjframe/b2-client。两种方式都接受补丁/拉取请求;所有其他活动都在 SourceHut 进行。
目录
简介
B2-client 是一个不依赖于特定异步运行时和 HTTP 客户端的 Backblaze B2 API 接口。完全支持 B2 API。
注意,这些函数中的大多数可能会产生费用。
许可证
所有库源代码均根据 MPL 2.0 许可证 的条款进行许可。
示例代码的源代码根据 MIT 许可证 的条款进行许可。
入门指南
安装
要使用预包装的 HTTP 客户端,请通过相关功能选择后端。支持的功能包括
with_hyper
with_surf
with_isahc
此列表最终将使用更底层的客户端库(例如,h1 而不是 hyper)。
通过 cargo 将 b2-client 添加为依赖项;例如,要使用 Surf HTTP 客户端
cargo add b2-client --features with_surf
没有默认客户端,因此您必须选择上述功能之一或使用自定义HTTP客户端。要使用自己的HTTP后端,只需实现HttpClient
特质,然后将结构体传递给account::authorize_account
。
测试
API调用通过surf后端使用预先录制的会话进行模拟,因此要运行所有测试,请运行cargo test --features=with_surf
。默认情况下,不会针对实时B2服务运行任何测试。
要针对实时B2 API运行测试,请设置环境变量B2_CLIENT_TEST_KEY
和B2_CLIENT_TEST_KEY_ID
为能够执行您要测试的任务的密钥/ID对,并将测试的VcrMode
更改为Record
。尽管没有重大破坏性测试(例如删除所有存储桶),但在不知道API做什么的情况下,不要对实时API运行测试,特别是如果您在生产账户上有密钥或存储桶。
一些测试可能需要对B2 API进行一些修改或设置才能运行(例如,删除存储桶,更改存储桶ID),并且如果设置了环境变量,一些测试将无法通过其预先录制的会话。
已知问题
-
错误处理略有分叉;例如,没有
WriteFiles
能力的上传文件将返回Error::Unauthorized
,但没有ReadFiles
能力的私有存储桶上传将返回Error::B2Error
。这是因为我们可以在发起API调用之前验证写入授权,但不能预先验证读取授权。这是可以解决的;只需要确定合并它们的最优方法。
贡献
欢迎提交补丁和拉取请求。对于主要功能或重大变更,请先打开工单或开始讨论,以便我们可以讨论您想做什么。
有关设置指南,请参阅CONTRIBUTING.md。如果您需要任何指导,请随时在讨论或工单中提问,或提交一个草稿PR。
联系
- 电子邮件: [email protected]
- 网站: www.ryanjframe.com
- diaspora*: [email protected]
相关项目
- b2_backblaze:使用reqwest
- raze:使用reqwest
- backblaze-b2:使用Hyper。可能不再维护
依赖项
~5–22MB
~340K SLoC