cloud-storage-lite

A simple, flexible Google Cloud Storage client (GCS).

This library isn't as featureful as, say the cloud-storage crate, but it's also more usable if you: * are using a secret keeper like Vault * generally work with a single bucket (using a bucket-scoped client) * would like to use multiple clients or tokio runtimes in one program * want canonicalized errors (404 gets one and only one error variant)

Example

```rust use cloudstoragelite as gcs;

[tokio::main]

async fn main() -> Result<(), Box> { let tokenprovider = gcs::tokenprovider::RenewingTokenProvider::new( gcs::tokenprovider::oauth::OAuthTokenProvider::new( gcs::tokenprovider::oauth::ServiceAccount::readfromcanonicalenv()? )? ); let client = gcs::Client::new(tokenprovider).intobucketclient("my-bucket".into());

client .createobject( "key", futures::stream::once( futures::future::ok::<_, std::convert::Infallible>(b"value".tovec()) ) ) .await?;

let object = client.get_object("key").await?;

let value = client .downloadobject(&object.name) .await? .mapok(|chunk| chunk.tovec()) .tryconcat() .await?;

println!("the value is: {}", String::fromutf8(downloadstream)?) } ```