You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2023/04/14 10:28:36 UTC

[camel] 02/06: CAMEL-19266 - Camel-AWS2-S3: Add a forcePathStyle option to configuration

This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 6e96da923bc6f0be5d868fb46147541c71cbeec3
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Apr 14 10:42:53 2023 +0200

    CAMEL-19266 - Camel-AWS2-S3: Add a forcePathStyle option to configuration
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 .../apache/camel/component/aws2/s3/AWS2S3Configuration.java  | 12 ++++++++++++
 .../aws2/s3/client/impl/AWS2S3ClientIAMOptimizedImpl.java    |  3 +++
 .../s3/client/impl/AWS2S3ClientIAMProfileOptimizedImpl.java  |  3 +++
 .../aws2/s3/client/impl/AWS2S3ClientStandardImpl.java        |  3 +++
 4 files changed, 21 insertions(+)

diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Configuration.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Configuration.java
index e9454c574ed..06a8f0c7c43 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Configuration.java
+++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/AWS2S3Configuration.java
@@ -52,6 +52,8 @@ public class AWS2S3Configuration implements Cloneable {
     private boolean includeFolders = true;
     @UriParam
     private String region;
+    @UriParam
+    private boolean forcePathStyle;
     @UriParam(label = "consumer", defaultValue = "true")
     private boolean deleteAfterRead = true;
     @UriParam(label = "consumer")
@@ -518,6 +520,16 @@ public class AWS2S3Configuration implements Cloneable {
         this.customerAlgorithm = customerAlgorithm;
     }
 
+    public boolean isForcePathStyle() {
+        return forcePathStyle;
+    }
+    /**
+     * Set whether the S3 client should use path-style URL instead of virtual-hosted-style
+     */
+    public void setForcePathStyle(boolean forcePathStyle) {
+        this.forcePathStyle = forcePathStyle;
+    }
+
     /**
      * Set whether the S3 client should expect to load credentials through a default credentials provider.
      */
diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMOptimizedImpl.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMOptimizedImpl.java
index 338bb3b4a2e..72ea19fed75 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMOptimizedImpl.java
+++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMOptimizedImpl.java
@@ -73,6 +73,9 @@ public class AWS2S3ClientIAMOptimizedImpl implements AWS2CamelS3InternalClient {
         if (configuration.isOverrideEndpoint()) {
             clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
         }
+        if (configuration.isForcePathStyle()) {
+            clientBuilder.forcePathStyle(true);
+        }
         if (configuration.isTrustAllCertificates()) {
             SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(AttributeMap
                     .builder()
diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMProfileOptimizedImpl.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMProfileOptimizedImpl.java
index e2f74370518..77419f8650c 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMProfileOptimizedImpl.java
+++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientIAMProfileOptimizedImpl.java
@@ -88,6 +88,9 @@ public class AWS2S3ClientIAMProfileOptimizedImpl implements AWS2CamelS3InternalC
         if (configuration.isOverrideEndpoint()) {
             clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
         }
+        if (configuration.isForcePathStyle()) {
+            clientBuilder.forcePathStyle(true);
+        }
         if (configuration.isTrustAllCertificates()) {
             SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(AttributeMap
                     .builder()
diff --git a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientStandardImpl.java b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientStandardImpl.java
index 2cd7693f82a..5d0fffc6cd7 100644
--- a/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientStandardImpl.java
+++ b/components/camel-aws/camel-aws2-s3/src/main/java/org/apache/camel/component/aws2/s3/client/impl/AWS2S3ClientStandardImpl.java
@@ -89,6 +89,9 @@ public class AWS2S3ClientStandardImpl implements AWS2CamelS3InternalClient {
         if (configuration.isOverrideEndpoint()) {
             clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride()));
         }
+        if (configuration.isForcePathStyle()) {
+            clientBuilder.forcePathStyle(true);
+        }
         if (configuration.isTrustAllCertificates()) {
             SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(AttributeMap
                     .builder()