Crate qiniu_download_manager
source ·Expand description
qiniu-download-manager
七牛下载管理
基于 qiniu-apis
提供针对七牛对象的下载功能
(同时提供阻塞客户端和异步客户端,异步客户端则需要启用 async
功能)。
功能描述
async
启用异步接口。
ureq
导入 qiniu-ureq
作为 HTTP 客户端。
isahc
导入 qiniu-isahc
作为 HTTP 客户端。
reqwest
导入 qiniu-reqwest
作为 HTTP 客户端。
c_ares
启用 c-ares
库作为 DNS 解析器。
trust_dns
启用 trust-dns
库作为 DNS 解析器。
dns-over-https
启用 trust-dns
库作为 DNS 解析器,并使用 DOH 协议。
dns-over-tls
启用 trust-dns
库作为 DNS 解析器,并使用 DOT 协议。
代码示例
下载私有空间的对象到指定路径
阻塞代码示例
use qiniu_download_manager::{apis::credential::Credential, DownloadManager, StaticDomainsUrlsGenerator, UrlsSigner};
let bound_domain = "my-domain.com"; // 直接设置绑定的空间域名
let object_name = "test-object";
let download_manager = DownloadManager::new(UrlsSigner::new(
Credential::new("abcdefghklmnopq", "1234567890"),
StaticDomainsUrlsGenerator::builder(bound_domain)
.use_https(false)
.build(), // 设置为 HTTP 协议
));
download_manager
.download(object_name)?
.to_path("/home/qiniu/test.png")?;
Ok(())
异步代码示例
use qiniu_download_manager::{
apis::{credential::Credential, http_client::BucketDomainsQueryer},
DownloadManager, EndpointsUrlGenerator, UrlsSigner,
};
let bucket_name = "test-bucket"; // 查询空间绑定的域名
let object_name = "test-object";
let credential = Credential::new("abcdefghklmnopq", "1234567890");
let download_manager = DownloadManager::new(UrlsSigner::new(
credential.to_owned(),
EndpointsUrlGenerator::builder(BucketDomainsQueryer::new().query(credential, bucket_name))
.use_https(false)
.build(), // 设置为 HTTP 协议
));
download_manager
.async_download(object_name)
.await?
.async_to_path("/home/qiniu/test.png")
.await?;
Re-exports
pub use qiniu_apis as apis;
Modules
- 将所有 Trait 全部重新导出,方便统一导入
Structs
- 下载对象的内容阅读器
- 下载管理器
- 下载管理构建器
- 下载重试器选项
- 准备下载的对象
- 下载对象的内容阅读器
- 下载进度信息
- 终端地址下载 URL 列表生成器
- 终端地址下载 URL 列表生成构建器
- 根据七牛 API 返回的状态码作出重试决定
- 生成下载 URL 的选项
- 永不重试器
- 重试统计信息
- 重试器结果
- 静态公开空间域名下载 URL 列表生成器
- 静态公开空间域名下载 URL 列表生成构建器
- URL 列表签名器
Enums
- 下载错误
- 重试决定
Traits
- 下载重试器
- 生成下载 URL 列表的接口
Type Aliases
- 下载结果