From 0f5730f242559150f1a6f35a82f91f4ba9b843ae Mon Sep 17 00:00:00 2001 From: phoenix Date: Thu, 6 Aug 2026 12:45:24 -0400 Subject: [PATCH] Making it more flexible --- src/config.rs | 3 +++ src/lib.rs | 21 ++++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 4f9f91f..85fce82 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1,5 +1,8 @@ +#[derive(Default)] pub struct Config { pub url: String, pub bucket: String, pub region: String, + pub access_key_id: String, + pub secret_key: String } diff --git a/src/lib.rs b/src/lib.rs index d88d247..e2efec5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,5 +1,7 @@ pub mod config; +use aws_sdk_s3::config::{Credentials, Region}; + #[derive(Default)] pub struct Data { pub filepath: String, @@ -25,7 +27,24 @@ impl Labyrinth { file_key: &str, data: &Data, ) -> Result { - let config = aws_config::load_from_env().await; + // 1. Create credentials + let credentials = Credentials::new( + self.config.access_key_id.clone(), + self.config.secret_key.clone(), + None, // session_token - None for long-term credentials + None, // expires_after - None for long-term credentials + "maze", // provider_name - just a label + ); + + // 2. Create region + let region = Region::new(self.config.region.to_string()); + let config = aws_config::from_env() + .region(region) + .credentials_provider(credentials) + .load() + .await; + + // let config = aws_config::load_from_env().await; let client = aws_sdk_s3::Client::new(&config); let data_content = if data.raw_data.is_empty() {