Qiniu-Download-Manager

qiniu-download-manager docs.rs Run Test Cases GitHub release MIT licensed

概览

基于 qiniu-apis 提供针对七牛对象的下载功能 (同时提供阻塞客户端和异步客户端,异步客户端则需要启用 async 功能)。

安装

不启用异步接口,推荐使用 ureq

toml [dependencies] qiniu-download-manager = { version = "0.1.2", features = ["ureq"] }

启用 Isahc 异步接口

toml [dependencies] qiniu-download-manager = { version = "0.1.2", features = ["async", "isahc"] }

启用 Reqwest 异步接口

toml [dependencies] qiniu-download-manager = { version = "0.1.2", features = ["async", "reqwest"] }

其他功能

c_ares

启用 c-ares 库作为 DNS 解析器

trust_dns

启用 trust-dns 库作为 DNS 解析器

dns-over-https

启用 trust-dns 库作为 DNS 解析器,并使用 DOH 协议

dns-over-tls

启用 trust-dns 库作为 DNS 解析器,并使用 DOT 协议

代码示例

阻塞代码示例

下载私有空间的对象到指定路径

```rust use qiniudownloadmanager::{apis::credential::Credential, DownloadManager, StaticDomainsUrlsGenerator, UrlsSigner};

let bounddomain = "my-domain.com"; // 直接设置绑定的空间域名 let objectname = "test-object"; let downloadmanager = DownloadManager::new(UrlsSigner::new( Credential::new("abcdefghklmnopq", "1234567890"), StaticDomainsUrlsGenerator::builder(bounddomain) .usehttps(false) .build(), // 设置为 HTTP 协议 )); downloadmanager .download(objectname)? .topath("/home/qiniu/test.png")?; ```

异步代码示例

下载私有空间的对象到指定路径

```rust use qiniudownloadmanager::{ apis::{credential::Credential, http_client::BucketDomainsQueryer}, DownloadManager, EndpointsUrlGenerator, UrlsSigner, };

let bucketname = "test-bucket"; // 查询空间绑定的域名 let objectname = "test-object"; let credential = Credential::new("abcdefghklmnopq", "1234567890"); let downloadmanager = DownloadManager::new(UrlsSigner::new( credential.toowned(), EndpointsUrlGenerator::builder(BucketDomainsQueryer::new().query(credential, bucketname)) .usehttps(false) .build(), // 设置为 HTTP 协议 )); downloadmanager .asyncdownload(objectname) .await? .asyncto_path("/home/qiniu/test.png") .await?; ```

最低支持的 Rust 版本(MSRV)

1.60.0

联系我们

代码许可

This project is licensed under the [MIT license].