use std::sync::Arc;
use std::time::{Duration, Instant};
use ibmcloud_iam::token::{TokenManager, DEFAULT_IAM_ENDPOINT};
use tracing_subscriber;
use ibmcloud_cos::cos;
fn main() -> Result<(), Box<dyn std::error::Error>> {
tracing_subscriber::fmt::init();
let mut bucket = "".to_string();
let mut endpoint = "".to_string();
let mut prefix = None;
for (i, arg) in std::env::args().enumerate() {
match i {
1 => endpoint = arg,
2 => bucket = arg,
3 => prefix = Some(arg),
_ => {}
}
}
eprintln!("Listing {}", bucket);
let tm = Arc::new(TokenManager::default());
let c = cos::Client::new(tm, &endpoint);
for obj in c.list_objects(&bucket, prefix) {
println!("{} {:>10} {}", obj.last_modified, obj.size, obj.key);
}
Ok(())
}