From 2a6b466354a73e8c817d69409a3863c1746ed108 Mon Sep 17 00:00:00 2001 From: Sam Ansmink Date: Thu, 23 May 2024 13:29:14 +0200 Subject: [PATCH] fix unauthenticated s3 requests --- src/functions/delta_scan.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/functions/delta_scan.cpp b/src/functions/delta_scan.cpp index deb5aa8..702385d 100644 --- a/src/functions/delta_scan.cpp +++ b/src/functions/delta_scan.cpp @@ -110,19 +110,21 @@ static ffi::EngineBuilder* CreateBuilder(ClientContext &context, const string &p } const auto &kv_secret = dynamic_cast(*secret_match.secret_entry->secret); - auto key_id = kv_secret.TryGetValue("key_id"); - auto secret = kv_secret.TryGetValue("secret"); - auto region = kv_secret.TryGetValue("region"); - auto endpoint = kv_secret.TryGetValue("endpoint"); - auto session_token = kv_secret.TryGetValue("session_token"); + auto key_id = kv_secret.TryGetValue("key_id").ToString(); + auto secret = kv_secret.TryGetValue("secret").ToString(); + auto region = kv_secret.TryGetValue("region").ToString(); - if (!key_id.ToString().empty()) { - ffi::set_builder_option(builder, to_delta_string_slice("aws_access_key_id"), to_delta_string_slice(key_id.ToString())); + if (key_id.empty() && secret.empty()) { + ffi::set_builder_option(builder, to_delta_string_slice("skip_signature"), to_delta_string_slice("true")); } - if (!secret.ToString().empty()) { - ffi::set_builder_option(builder, to_delta_string_slice("aws_secret_access_key"), to_delta_string_slice(secret.ToString())); + + if (!key_id.empty()) { + ffi::set_builder_option(builder, to_delta_string_slice("aws_access_key_id"), to_delta_string_slice(key_id)); + } + if (!secret.empty()) { + ffi::set_builder_option(builder, to_delta_string_slice("aws_secret_access_key"), to_delta_string_slice(secret)); } - ffi::set_builder_option(builder, to_delta_string_slice("aws_region"), to_delta_string_slice(region.ToString())); + ffi::set_builder_option(builder, to_delta_string_slice("aws_region"), to_delta_string_slice(region)); return builder; }