Qiniu-Upload-Manager

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

概览

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

安装

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

toml [dependencies] qiniu-upload-manager = { version = "0.1.3", features = ["ureq"] }

启用 Isahc 异步接口

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

启用 Reqwest 异步接口

toml [dependencies] qiniu-upload-manager = { version = "0.1.3", 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 qiniuuploadmanager::{ apis::credential::Credential, AutoUploader, AutoUploaderObjectParams, UploadManager, UploadTokenSigner, }; use std::time::Duration;

let bucketname = "test-bucket"; let objectname = "test-object"; let uploadmanager = UploadManager::builder(UploadTokenSigner::newcredentialprovider( Credential::new("abcdefghklmnopq", "1234567890"), bucketname, Duration::fromsecs(3600), )) .build(); let params = AutoUploaderObjectParams::builder().objectname(objectname).filename(objectname).build(); let mut uploader: AutoUploader = uploadmanager.autouploader(); uploader.uploadpath("/home/qiniu/test.png", params)?; ```

异步代码示例

用自动上传器上传文件

```rust use qiniuuploadmanager::{ apis::credential::Credential, AutoUploader, AutoUploaderObjectParams, UploadManager, UploadTokenSigner, }; use std::time::Duration;

let bucketname = "test-bucket"; let objectname = "test-object"; let uploadmanager = UploadManager::builder(UploadTokenSigner::newcredentialprovider( Credential::new("abcdefghklmnopq", "1234567890"), bucketname, Duration::fromsecs(3600), )) .build(); let params = AutoUploaderObjectParams::builder().objectname(objectname).filename(objectname).build(); let mut uploader: AutoUploader = uploadmanager.autouploader(); uploader.asyncupload_path("/home/qiniu/test.png", params).await?; ```

最低支持的 Rust 版本(MSRV)

1.60.0

联系我们

代码许可

This project is licensed under the [MIT license].