#qiniu #storage #upload #manager #async #sdk #trust-dns

qiniu-upload-manager

Rust版的七牛上传管理器

10个版本

0.2.4 2023年12月26日
0.2.3 2023年5月23日
0.2.2 2022年12月23日
0.2.1 2022年11月1日
0.1.2 2022年6月9日

#55 in 认证

每月下载量 37次
qiniu-sdk 中使用

MIT 许可证

1.5MB
32K SLoC

Qiniu-Upload-Manager

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

概览

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

安装

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

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

启用 Isahc 异步接口

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

启用 Reqwest 异步接口

[dependencies]
qiniu-upload-manager = { version = "0.2.1", 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 协议

代码示例

阻塞代码示例

使用自动上传器上传文件

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

let bucket_name = "test-bucket";
let object_name = "test-object";
let upload_manager = UploadManager::builder(UploadTokenSigner::new_credential_provider(
    Credential::new("abcdefghklmnopq", "1234567890"),
    bucket_name,
    Duration::from_secs(3600),
))
.build();
let params = AutoUploaderObjectParams::builder().object_name(object_name).file_name(object_name).build();
let mut uploader: AutoUploader = upload_manager.auto_uploader();
uploader.upload_path("/home/qiniu/test.png", params)?;

异步代码示例

使用自动上传器上传文件

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

let bucket_name = "test-bucket";
let object_name = "test-object";
let upload_manager = UploadManager::builder(UploadTokenSigner::new_credential_provider(
    Credential::new("abcdefghklmnopq", "1234567890"),
    bucket_name,
    Duration::from_secs(3600),
))
.build();
let params = AutoUploaderObjectParams::builder().object_name(object_name).file_name(object_name).build();
let mut uploader: AutoUploader = upload_manager.auto_uploader();
uploader.async_upload_path("/home/qiniu/test.png", params).await?;

最低支持的Rust版本(MSRV)

1.70.0

联系我们

  • 如需帮助,请提交工单(在门户右侧点击咨询和建议提交工单,或者直接向 [email protected] 发送邮件)
  • 如有问题,可以到问答社区提问,问答社区
  • 更详细的文档,见官方文档站
  • 如果发现了bug,欢迎提交 Issue
  • 如果有功能需求,欢迎提交 Issue
  • 如果要提交代码,欢迎提交 Pull Request
  • 欢迎关注我们的微信 微博,及时获取动态信息。

代码许可

本项目受MIT许可证许可。

依赖

~13–32MB
~562K SLoC