Skip to content

Commit 68cbac8

Browse files
feat(s3): add support for region_name via client_kwargs in S3Reader (#19530) (#19546)
1 parent 297ac95 commit 68cbac8

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

llama-index-integrations/readers/llama-index-readers-s3/llama_index/readers/s3/base.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ class S3Reader(BasePydanticReader, ResourcesReaderMixin, FileSystemReaderMixin):
5353
Default is None.
5454
aws_access_id (Optional[str]): provide AWS access key directly.
5555
aws_access_secret (Optional[str]): provide AWS access key directly.
56+
region_name (Optional[str]): AWS region for the S3 bucket. If not provided,
57+
the default environment region or AWS config will be used.
5658
s3_endpoint_url (Optional[str]): provide S3 endpoint URL directly.
5759
5860
"""
@@ -73,6 +75,7 @@ class S3Reader(BasePydanticReader, ResourcesReaderMixin, FileSystemReaderMixin):
7375
aws_access_id: Optional[str] = None
7476
aws_access_secret: Optional[str] = None
7577
aws_session_token: Optional[str] = None
78+
region_name: Optional[str] = None
7679
s3_endpoint_url: Optional[str] = None
7780
custom_reader_path: Optional[str] = None
7881
invalidate_s3fs_cache: bool = True
@@ -84,11 +87,16 @@ def class_name(cls) -> str:
8487
def _get_s3fs(self):
8588
from s3fs import S3FileSystem
8689

90+
client_kwargs = {}
91+
if isinstance(self.region_name, str) and self.region_name.strip():
92+
client_kwargs["region_name"] = self.region_name.strip()
93+
8794
s3fs = S3FileSystem(
8895
key=self.aws_access_id,
8996
endpoint_url=self.s3_endpoint_url,
9097
secret=self.aws_access_secret,
9198
token=self.aws_session_token,
99+
client_kwargs=client_kwargs or None,
92100
)
93101
if self.invalidate_s3fs_cache:
94102
s3fs.invalidate_cache()

llama-index-integrations/readers/llama-index-readers-s3/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ dev = [
2727

2828
[project]
2929
name = "llama-index-readers-s3"
30-
version = "0.4.0"
30+
version = "0.4.1"
3131
description = "llama-index readers s3 integration"
3232
authors = [{name = "Your Name", email = "[email protected]"}]
3333
requires-python = ">=3.9,<4.0"

0 commit comments

Comments
 (0)