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

下载结果