Files
flux-releaser/crates/flux-releaser/src/app/infra/aws_s3.rs
kjuulh 616d44c988
Some checks reported errors
continuous-integration/drone/push Build encountered an error
feat: tls
Signed-off-by: kjuulh <contact@kjuulh.io>
2024-05-26 17:23:58 +02:00

34 lines
1.1 KiB
Rust

use anyhow::Context;
use aws_config::{BehaviorVersion, Region};
use aws_sdk_s3::config::Credentials;
pub async fn s3_client() -> anyhow::Result<aws_sdk_s3::Client> {
let shared_config = aws_config::defaults(BehaviorVersion::latest())
.region(Region::new("eu-west-1"))
.credentials_provider(Credentials::new(
std::env::var("AWS_ACCESS_KEY_ID").context("AWS_ACCESS_KEY_ID was not set")?,
std::env::var("AWS_SECRET_ACCESS_KEY").context("AWS_SECRET_ACCESS_KEY was not set")?,
None,
None,
"flux_releaser",
));
let config = aws_sdk_s3::config::Builder::from(&shared_config.load().await)
.endpoint_url(std::env::var("AWS_ENDPOINT_URL").context("AWS_ENDPOINT_URL was not set")?)
.force_path_style(true)
.build();
let client = aws_sdk_s3::Client::from_conf(config);
let buckets = client.list_buckets().send().await?;
buckets
.buckets
.iter()
.flatten()
.flat_map(|b| &b.name)
.for_each(|n| tracing::debug!("test: found aws bucket: {}", n));
Ok(client)
}