From cfcebf59d503b4354835ef973f3a31b9af9bb422 Mon Sep 17 00:00:00 2001 From: Sagar Date: Fri, 13 Feb 2026 12:21:05 +0100 Subject: [PATCH] :bug: Make S3Client and S3Presigner use identical credential resolution (#8316) --- backend/src/app/storage/s3.clj | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/src/app/storage/s3.clj b/backend/src/app/storage/s3.clj index 8d28a9a9f3..ef56e8a9b4 100644 --- a/backend/src/app/storage/s3.clj +++ b/backend/src/app/storage/s3.clj @@ -33,6 +33,7 @@ java.util.Optional java.util.concurrent.atomic.AtomicLong org.reactivestreams.Subscriber + software.amazon.awssdk.auth.credentials.DefaultCredentialsProvider software.amazon.awssdk.core.ResponseBytes software.amazon.awssdk.core.async.AsyncRequestBody software.amazon.awssdk.core.async.AsyncResponseTransformer @@ -199,7 +200,8 @@ (defn- build-s3-client [{:keys [::region ::endpoint ::wrk/netty-io-executor]}] - (let [aconfig (-> (ClientAsyncConfiguration/builder) + (let [creds-provider (DefaultCredentialsProvider/create) + aconfig (-> (ClientAsyncConfiguration/builder) (.build)) sconfig (-> (S3Configuration/builder) @@ -221,6 +223,7 @@ builder (.asyncConfiguration ^S3AsyncClientBuilder builder ^ClientAsyncConfiguration aconfig) builder (.httpClient ^S3AsyncClientBuilder builder ^NettyNioAsyncHttpClient hclient) builder (.region ^S3AsyncClientBuilder builder (lookup-region region)) + builder (.credentialsProvider ^S3AsyncClientBuilder builder creds-provider) builder (cond-> ^S3AsyncClientBuilder builder (some? endpoint) (.endpointOverride (URI. (str endpoint))))] @@ -237,7 +240,8 @@ (defn- build-s3-presigner [{:keys [::region ::endpoint]}] - (let [config (-> (S3Configuration/builder) + (let [creds-provider (DefaultCredentialsProvider/create) + config (-> (S3Configuration/builder) (cond-> (some? endpoint) (.pathStyleAccessEnabled true)) (.build))] @@ -245,6 +249,7 @@ (cond-> (some? endpoint) (.endpointOverride (URI. (str endpoint)))) (.region (lookup-region region)) (.serviceConfiguration ^S3Configuration config) + (.credentialsProvider creds-provider) (.build)))) (defn- write-input-stream