You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@fluss.apache.org by ip...@apache.org on 2026/04/22 16:18:33 UTC

(fluss) branch release-0.9 updated: [s3] Propagate path-style-access config from server to client via delegation token (#3165)

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

polyzos pushed a commit to branch release-0.9
in repository https://gitbox.apache.org/repos/asf/fluss.git


The following commit(s) were added to refs/heads/release-0.9 by this push:
     new 4942cdaf2 [s3] Propagate path-style-access config from server to client via delegation token (#3165)
4942cdaf2 is described below

commit 4942cdaf21be523b67f6adf952b73eff378c596e
Author: yuxia Luo <lu...@alumni.sjtu.edu.cn>
AuthorDate: Thu Apr 23 00:00:43 2026 +0800

    [s3] Propagate path-style-access config from server to client via delegation token (#3165)
    
    Previously, S3DelegationTokenProvider only forwarded region and endpoint
    to the client via additionInfos. The path.style.access setting was missing,
    causing the client to use virtual-hosted-style addressing (e.g., bucket.host)
    instead of path-style (e.g., host/bucket), which fails with S3-compatible
    stores like MinIO/RustFS where DNS resolution of virtual-hosted names is
    not available.
---
 .../java/org/apache/fluss/fs/s3/token/S3DelegationTokenProvider.java   | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fluss-filesystems/fluss-fs-s3/src/main/java/org/apache/fluss/fs/s3/token/S3DelegationTokenProvider.java b/fluss-filesystems/fluss-fs-s3/src/main/java/org/apache/fluss/fs/s3/token/S3DelegationTokenProvider.java
index b582e4d35..5c3100c9e 100644
--- a/fluss-filesystems/fluss-fs-s3/src/main/java/org/apache/fluss/fs/s3/token/S3DelegationTokenProvider.java
+++ b/fluss-filesystems/fluss-fs-s3/src/main/java/org/apache/fluss/fs/s3/token/S3DelegationTokenProvider.java
@@ -52,6 +52,7 @@ public class S3DelegationTokenProvider {
 
     private static final String REGION_KEY = "fs.s3a.region";
     private static final String ENDPOINT_KEY = "fs.s3a.endpoint";
+    private static final String PATH_STYLE_ACCESS_KEY = "fs.s3a.path.style.access";
 
     private static final String ROLE_ARN_KEY = "fs.s3a.assumed.role.arn";
     private static final String STS_ENDPOINT_KEY = "fs.s3a.assumed.role.sts.endpoint";
@@ -83,7 +84,7 @@ public class S3DelegationTokenProvider {
         }
 
         this.additionInfos = new HashMap<>();
-        for (String key : Arrays.asList(REGION_KEY, ENDPOINT_KEY)) {
+        for (String key : Arrays.asList(REGION_KEY, ENDPOINT_KEY, PATH_STYLE_ACCESS_KEY)) {
             if (conf.get(key) != null) {
                 additionInfos.put(key, conf.get(key));
             }