Some checks reported errors
continuous-integration/drone/push Build encountered an error
Signed-off-by: kjuulh <contact@kjuulh.io>
34 lines
1.1 KiB
Rust
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)
|
|
}
|