From b8c362ec65072c6c8169c796d92837adf7015fe0 Mon Sep 17 00:00:00 2001 From: discord9 Date: Thu, 11 Dec 2025 14:57:02 +0800 Subject: [PATCH] fix: disable config load in int test Signed-off-by: discord9 --- src/cli/src/common/object_store.rs | 4 ++++ src/object-store/src/config.rs | 12 ++++++++++++ src/object-store/src/factory.rs | 4 ++-- tests-integration/src/test_util.rs | 2 ++ 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/cli/src/common/object_store.rs b/src/cli/src/common/object_store.rs index 601d17145e..18b10f9080 100644 --- a/src/cli/src/common/object_store.rs +++ b/src/cli/src/common/object_store.rs @@ -89,6 +89,10 @@ wrap_with_clap_prefix! { region: Option, #[doc = "Enable virtual host style for the object store."] enable_virtual_host_style: bool = Default::default(), + #[doc = "Allow anonymous access (disable credential signing) for testing."] + allow_anonymous: bool = Default::default(), + #[doc = "Disable config load from environment and files for testing."] + disable_config_load: bool = Default::default(), } } diff --git a/src/object-store/src/config.rs b/src/object-store/src/config.rs index ea34e238c4..d066be497c 100644 --- a/src/object-store/src/config.rs +++ b/src/object-store/src/config.rs @@ -117,6 +117,10 @@ pub struct S3Connection { /// By default, opendal will send API to https://s3.us-east-1.amazonaws.com/bucket_name /// Enabled, opendal will send API to https://bucket_name.s3.us-east-1.amazonaws.com pub enable_virtual_host_style: bool, + /// Allow anonymous access (disable credential signing) - useful for local testing + pub allow_anonymous: bool, + /// Disable config load from environment and files - useful for local testing + pub disable_config_load: bool, } impl From<&S3Connection> for S3 { @@ -139,6 +143,14 @@ impl From<&S3Connection> for S3 { builder = builder.enable_virtual_host_style(); } + if connection.allow_anonymous { + builder = builder.allow_anonymous(); + } + + if connection.disable_config_load { + builder = builder.disable_config_load(); + } + builder } } diff --git a/src/object-store/src/factory.rs b/src/object-store/src/factory.rs index 2ac38e00ed..c8bb73e534 100644 --- a/src/object-store/src/factory.rs +++ b/src/object-store/src/factory.rs @@ -117,8 +117,8 @@ pub async fn new_oss_object_store(oss_config: &OssConfig) -> Result pub async fn new_s3_object_store(s3_config: &S3Config) -> Result { let root = util::normalize_dir(&s3_config.connection.root); info!( - "The s3 storage bucket is: {}, root is: {}", - s3_config.connection.bucket, &root + "The s3 storage bucket is: {}, root is: {}, endpoint: {:?}", + s3_config.connection.bucket, &root, s3_config.connection.endpoint ); let client = build_http_client(&s3_config.http_client)?; diff --git a/tests-integration/src/test_util.rs b/tests-integration/src/test_util.rs index 5a0619c1cc..b438d3d72a 100644 --- a/tests-integration/src/test_util.rs +++ b/tests-integration/src/test_util.rs @@ -147,6 +147,8 @@ fn s3_test_config() -> S3Config { bucket: env::var("GT_S3_BUCKET").unwrap(), region: Some(env::var("GT_S3_REGION").unwrap()), endpoint: env::var("GT_S3_ENDPOINT_URL").ok(), + allow_anonymous: true, // Enable anonymous access to bypass reqsign for local testing + disable_config_load: true, // Disable config load to bypass reqsign for local MinIO ..Default::default() }, ..Default::default()