INNER CODE UNIT · Rust
bucket_size
nogibjj/rust-mlops-template · awsmetas3/src/lib.rs:32
async fn bucket_size(client: &Client, bucket: &str) -> Result<i64, Error> {
let resp = client.list_objects_v2().bucket(bucket).send().await?;
let contents = resp.contents().unwrap_or_default();
//store in a vector
let mut sizes: Vec<i64> = Vec::new();
for object in contents {
sizes.push(object.size());
}
let total_size: i64 = sizes.iter().sum();
println!("Total size of bucket {} is {} bytes", bucket, total_size);
Ok(total_size)
}
/* Use list_buckets to get a list of all buckets in an AWS S3 account
return a vector of all bucket sizes.
If there is an error continue to the next bucket only print if verbose is true
Return the vector
*/