use std::time::Duration;
use anyhow::Result;
use s3util_rs::config::ClientConfig;
use s3util_rs::config::args::presign::PresignArgs;
use s3util_rs::storage::s3::api;
use super::ExitStatus;
pub async fn run_presign(args: PresignArgs, client_config: ClientConfig) -> Result<ExitStatus> {
let (bucket, key) = args
.bucket_key()
.map_err(|e| anyhow::anyhow!("{}", e.trim_end()))?;
let client = client_config.create_client().await;
let url = api::presign_get_object(&client, &bucket, &key, Duration::from_secs(args.expires_in))
.await?;
println!("{url}");
Ok(ExitStatus::Success)
}