#api-client #upload #api #backblaze #client #b2 #file-upload

bin+lib b2_backblaze

这是一个用于上传小文件到 Backblaze b2 服务的异步库。

10 个版本

0.1.9 2024年7月24日
0.1.8 2024年1月13日
0.1.7 2023年11月20日
0.1.6 2023年10月10日
0.1.3 2022年1月27日

#179 in 异步

Download history 1/week @ 2024-05-28 4/week @ 2024-06-04 133/week @ 2024-07-23 9/week @ 2024-07-30

每月142次下载

GPL-3.0 许可证

70KB
2K SLoC

b2-backblaze

这是一个完全支持异步库,用于访问 Backblaze b2 服务后端 API。

变更

-crate have some performance changes but sadly this breaks the b2 api, although it can be fixed very quickly.
-b2 now holds creds in a Arc Mutex and shares a Arc of creds to each request, which enables multiple request to run in parallel and only one login request at a time
-try again api is added, this api keeps logging in with a time interval until login is successful
-each request will check session and login if required

特性

  • 单文件上传
  • 大文件和单文件 API
  • 支持 v3

示例代码


use b2_backblaze::{B2,Config};

#[tokio::main]
async fn main() {

    //start b2 client
    let mut client = B2::new(Config::new(
        "ID".to_string(),
        "KEY".to_string()
    ));

    //set bucket id
    client.set_bucket_id("bucket_id".to_string());

    //login and start session
    match client.login().await{
        Ok(_)=>{
            println!(">>> login successfull");
        },
        Err(_e)=>{
            return println!("!!! login failed : {:?}",_e);
        }
    }

    //upload file to path
    match client.upload(
        "emails/some_email/drink.png".to_string(),
        "d://workstation/expo/rust/letterman/letterman/drink.png".to_string()
    ).await{
        Ok(_v)=>{
            println!(">>> upload successfull");
        },
        Err(_e)=>{
            return println!("!!! login failed : {:?}",_e);
        }
    }

}

依赖

~6–20MB
~255K SLoC