putblob/
putblob.rs

1use tokio;
2use threema_client::blob_api;
3use std::io::prelude::*;
4use std::io::BufReader;
5use env_logger;
6
7#[tokio::main]
8async fn main(){
9    env_logger::init();
10    let argv = std::env::args().collect::<Vec<_>>();
11    let mut blob = vec![];
12    if argv.len() == 2 {
13        let fname = &argv[1];
14        let f = std::fs::File::open(fname).expect(fname);
15        BufReader::new(f).read_to_end(&mut blob).expect(fname);
16    }
17    else {
18        std::io::stdin().lock().read_to_end(&mut blob).expect("reading stdin");
19    }
20    let c = blob_api::Client::new();
21    let blobid = c.upload(&blob).await.expect("upload blob");
22    println!("{}", blobid.hex());
23}