You need to enable JavaScript to run this app.
导航
使用 Rust SDK 访问 TOS
最近更新时间:2025.01.14 16:10:35首次发布时间:2025.01.14 16:10:35

当前,社区为 TOS 提供了 Rust SDK 的支持,并发布到了 crates.io 仓库。您可以使用 Rust SDK 访问 TOS ,实现资源的上传和下载。本文介绍使用 Rust SDK 访问 TOS 的操作步骤。

前提条件

已搭建 Rust 开发环境,详细介绍,请参见 Install Rust

操作步骤

  1. 在本地配置长期访问凭证。

    说明

    关于获取 Access Key ID 和 Secret Access Key 的具体步骤,请参见 Access Key 管理

    在 macOS 系统配置长期访问凭证的操作如下:

    1. 打开终端并执行以下命令打开文件。

      nano ~/.bash_profile
      
    2. 在文件末尾添加 AKSK 信息。

      export TOS_ACCESS_KEY=AKTPYmI1Z****
      export TOS_SECRET_KEY=T1dJM01UU****
      
    3. 保存文件并退出。

    4. 执行以下命令生效配置信息。

      source ~/.bash_profile
      
    5. 执行以下命令验证配置信息。

      echo $TOS_ACCESS_KEY
      echo $TOS_SECRET_KEY
      

      如果配置成功,则返回如下示例:

      AKTPYmI1Z****
      T1dJM01UU****
      
  2. 执行以下命令,安装 TOS Rust SDK。

    说明

    关于 TOS Rust SDK 的详细介绍,请参见 ve-tos-rust-sdk

    cargo add ve-tos-rust-sdk
    
  3. 使用 Rust SDK 访问 TOS。
    根据实际情况修改以下代码中的 regionendpoint,然后运行以下代码。

    说明

    设置 endpoint 参数时,访问域名前需要添加 http://,例如 http://tos-cn-beijing.volces.com。关于 Endpoint 的详细介绍,请参见地域和访问域名(Endpoint)

    use std::env;
    
    use ve_tos_rust_sdk::bucket::{BucketAPI, ListBucketsInput};
    use ve_tos_rust_sdk::tos;
    
    fn main() {
        let ak = env::var("TOS_ACCESS_KEY").unwrap_or("".to_string());
        let sk = env::var("TOS_SECRET_KEY").unwrap_or("".to_string());
        let endpoint = "https://tos-cn-beijing.volces.com";
        let region = "cn-beijing";
        let client = tos::builder()
            .connection_timeout(3000)
            .request_timeout(10000)
            .max_retry_count(3)
            .ak(ak)
            .sk(sk)
            .region(region)
            .endpoint(endpoint)
            .build().unwrap();
    
        let o = client.list_buckets(&ListBucketsInput::new()).unwrap();
        for bucket in o.buckets() {
            println!("{}", bucket.name());
        }
    }
    

    如果返回存储桶的名称,说明使用 Rust SDK 访问 TOS 成功。

相关操作

您还可以参考接口文档自行编译代码,使用 Rust SDK 实现创建存储桶、删除对象等操作,关于 Rust SDK 的更多接口文档,请参见 Crate ve_tos_rust_sdk