#对象存储 #云存储 #COS #腾讯云 #腾讯云

qcos

提供腾讯云对象存储(COS)的基本接口封装

13 个版本

0.1.12 2024年8月23日
0.1.11 2024年8月16日
0.1.6 2022年10月16日
0.1.5 2022年4月7日

#322 in 网页编程

Download history 10/week @ 2024-05-03 4/week @ 2024-05-10 19/week @ 2024-05-17 18/week @ 2024-05-24 23/week @ 2024-05-31 12/week @ 2024-06-07 27/week @ 2024-06-14 8/week @ 2024-06-21 2/week @ 2024-06-28 9/week @ 2024-07-05 8/week @ 2024-07-12 8/week @ 2024-07-19 18/week @ 2024-07-26 313/week @ 2024-08-02 186/week @ 2024-08-09 168/week @ 2024-08-16

688 每月下载量
用于 qcloud

MIT 许可证

93KB
2K SLoC

Crates.io qcos

腾讯云对象存储(COS) Rust

本包提供腾讯云对象存储(cos)的基本操作,包括bucket创建及删除,对象的上传、下载、删除等。

上传文件支持以下特点

  • 支持文件直传,推荐 1GB 以下的文件

  • 支持分块传输,设置分块大小和最大上传线程数量

  • 支持显示上传进度条(需开启progress-bar feature),上传方法名称加了_progress_bar后缀与不显示进度条的方法区分

0.1.9版本之后,下载文件也支持显示进度条 🚀🚀🚀

使用方法

use std::path::PathBuf;
use qcos::acl::{AclHeader, ObjectAcl};
use qcos::client::Client;
use qcos::objects::{mime, ErrNo};

#[tokio::main]
async fn main() {
    let client = Client::new(
        "Your secrect id",
        "Your secrect key",
        "bucket name",
        "region",
    );
    let mut acl_header = AclHeader::new();
    acl_header.insert_object_x_cos_acl(ObjectAcl::PublicRead);
    let file_path = PathBuf::from("test.png");
    let res = client.put_object(&file_path, "test.png", Some(mime::IMAGE_PNG), Some(acl_header)).await;
    if res.error_no == ErrNo::SUCCESS {
        println!("success");
    } else {
        println!("{}", res.error_message);
    }
    // 分块上传,带进度条
    #[cfg(feature = "progress-bar")]
    let res = client
        .clone()
        .put_big_object_progress_bar(
            &file_path,
            "test.png",
            None,
            Some(qcos::objects::StorageClassEnum::ARCHIVE),
            None,
            Some(1024 * 1024),
            None,
            None,
        )
        .await;

    // 下载文件到本地,启用10个线程,并开启进度条
    #[cfg(feature = "progress-bar")]
    let res = client
        .get_object_progress_bar("Cargo.toml", "local_Cargo.toml", Some(10), None)
        .await;
}

更多示例请参考示例

安装

[dependencies]
qcos = "0.1.12"

如果需要开启显示进度条的方法

[dependencies]
qcos = {version = "0.1.12", features=["progress-bar"]}

依赖项

~8–20MB
~299K SLoC