SDK
SDK Rust
Crate officiel, async/await avec tokio.
Version
Crate `coffrify` sur crates.io - Rust ≥ 1.75, async avec `tokio`.
Installation
terminal
$ cargo add coffrifyUpdating crates.io index Adding coffrify v0.2.0 to dependencies
Utilisation
main.rsrust
use coffrify::{Client, CreateTransferParams, File};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = Client::new(std::env::var("COFFRIFY_API_KEY")?);
let transfer = client
.transfers()
.create(CreateTransferParams {
files: vec![File { name: "document.pdf".into(), size: 204800 }],
expires_in: "7d".into(),
..Default::default()
})
.await?;
println!("{}", transfer.short_code);
println!("{}", transfer.share_url);
// Upload
let data = tokio::fs::read("document.pdf").await?;
client.upload(&transfer.upload_urls[0], data).await?;
client.transfers().finalize(&transfer.id).await?;
Ok(())
}Gestion des erreurs
use coffrify::Error;
match result {
Err(Error::RateLimit { retry_after }) => {
tokio::time::sleep(Duration::from_secs(retry_after)).await;
}
Err(Error::Api { status, code, message }) => {
eprintln!("{status} {code}: {message}");
}
_ => {}
}