From ddaed541ff0fc9e0aeca01ca82e4bac2b5e2869a Mon Sep 17 00:00:00 2001 From: Syed Shahmeer Ali Date: Fri, 5 Sep 2025 06:58:30 +0500 Subject: [PATCH] Fix S3 client initialization with signature_version and addressing_style (#9911) ### What problem does this PR solve? Moved `signature_version` and `addressing_style` parameters to a `Config` object from `botocore.config` `signature_version` is now passed as `Config(signature_version='v4')` `addressing_style` is now passed as `Config(s3={'addressing_style': 'path'})` The `Config` object is then passed to `boto3.client()` via the `config` parameter ## Changes Made - Modified `rag/utils/s3_conn.py` in the `__open__()` method - Updated parameter handling logic to use `config_kwargs` dictionary - Maintained backward compatibility for configurations without these parameters ## Related Issue Fixes #9910 ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) Co-authored-by: Syed Shahmeer Ali --- rag/utils/s3_conn.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/rag/utils/s3_conn.py b/rag/utils/s3_conn.py index 74049c7c1..2a1e08185 100644 --- a/rag/utils/s3_conn.py +++ b/rag/utils/s3_conn.py @@ -80,10 +80,13 @@ class RAGFlowS3: s3_params['region_name'] = self.region_name if self.endpoint_url: s3_params['endpoint_url'] = self.endpoint_url + + # Configure signature_version and addressing_style through Config object if self.signature_version: - s3_params['signature_version'] = self.signature_version + config_kwargs['signature_version'] = self.signature_version if self.addressing_style: - s3_params['addressing_style'] = self.addressing_style + config_kwargs['s3'] = {'addressing_style': self.addressing_style} + if config_kwargs: s3_params['config'] = Config(**config_kwargs)