use anyhow::{anyhow, Result}; use aws_config::{Region, BehaviorVersion}; use aws_sdk_s3::{operation::head_bucket::HeadBucketOutput, Client, config::Credentials}; use aws_types::sdk_config::SharedCredentialsProvider; use crate::models::BinaryCache; pub async fn check_bucket(client: &Client, bucket_name: &str) -> Result { println!("{}", bucket_name); let res = client.head_bucket().bucket(bucket_name).send().await; res.map_err(|e| anyhow!("Cannot access the binary cache bucket: {}", e)) } pub fn create_client(bc: BinaryCache) -> aws_sdk_s3::Client { let credentials = Credentials::new(bc.access_key, bc.secret_key, None, None, "nom-nom-provider"); let s3_client_config = aws_config::SdkConfig::builder() .endpoint_url(bc.endpoint_url) .region(Some(Region::new(bc.region))) .credentials_provider(SharedCredentialsProvider::new(credentials)) .behavior_version(BehaviorVersion::latest()) .build(); aws_sdk_s3::Client::new(&s3_client_config) }