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 Definitions
下载结果