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

Modules

  • 将所有 Trait 全部重新导出,方便统一导入

Structs

Enums

Traits

Type Aliases