Skip to content

Commit 845beea

Browse files
committed
Support aws_session_token for S3 backends
1 parent 329073d commit 845beea

4 files changed

Lines changed: 12 additions & 0 deletions

File tree

simpletuner/helpers/data_backend/aws.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ def __init__(
6363
endpoint_url: str = None,
6464
aws_access_key_id: str = None,
6565
aws_secret_access_key: str = None,
66+
aws_session_token: str = None,
6667
read_retry_limit: int = 5,
6768
write_retry_limit: int = 5,
6869
read_retry_interval: int = 5,
@@ -79,6 +80,7 @@ def __init__(
7980
self.write_retry_interval = write_retry_interval
8081
self.compress_cache = compress_cache
8182
self.max_pool_connections = max_pool_connections
83+
self.aws_session_token = aws_session_token
8284
self.type = "aws"
8385

8486
extra_args = {"region_name": region_name}
@@ -91,6 +93,7 @@ def __init__(
9193
"s3",
9294
aws_access_key_id=aws_access_key_id,
9395
aws_secret_access_key=aws_secret_access_key,
96+
aws_session_token=aws_session_token,
9497
config=s3_config,
9598
**extra_args,
9699
)
@@ -354,6 +357,7 @@ def test_s3_connection(
354357
endpoint_url: Optional[str] = None,
355358
aws_access_key_id: Optional[str] = None,
356359
aws_secret_access_key: Optional[str] = None,
360+
aws_session_token: Optional[str] = None,
357361
max_keys: int = 5,
358362
) -> Dict[str, Any]:
359363
"""Run a minimal connectivity check against an S3 bucket."""
@@ -372,6 +376,7 @@ def test_s3_connection(
372376
"s3",
373377
aws_access_key_id=aws_access_key_id,
374378
aws_secret_access_key=aws_secret_access_key,
379+
aws_session_token=aws_session_token,
375380
config=s3_config,
376381
**extra_args,
377382
)

simpletuner/helpers/data_backend/builders/aws.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def _create_backend(self, config: BaseBackendConfig) -> S3DataBackend:
3030
aws_endpoint_url = getattr(config, "aws_endpoint_url", None)
3131
aws_access_key_id = getattr(config, "aws_access_key_id", None)
3232
aws_secret_access_key = getattr(config, "aws_secret_access_key", None)
33+
aws_session_token = getattr(config, "aws_session_token", None)
3334

3435
compress_cache = self._get_compression_setting(config)
3536
max_pool_connections = self._resolve_max_pool_connections(config)
@@ -42,6 +43,7 @@ def _create_backend(self, config: BaseBackendConfig) -> S3DataBackend:
4243
endpoint_url=aws_endpoint_url,
4344
aws_access_key_id=aws_access_key_id,
4445
aws_secret_access_key=aws_secret_access_key,
46+
aws_session_token=aws_session_token,
4547
compress_cache=compress_cache,
4648
max_pool_connections=max_pool_connections,
4749
)

simpletuner/helpers/data_backend/config/image.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class ImageBackendConfig(BaseBackendConfig):
3434
aws_endpoint_url: Optional[str] = None
3535
aws_access_key_id: Optional[str] = None
3636
aws_secret_access_key: Optional[str] = None
37+
aws_session_token: Optional[str] = None
3738
aws_max_pool_connections: Optional[int] = None
3839

3940
dataset_name: Optional[str] = None
@@ -131,6 +132,7 @@ def _get_arg(key: str, default: Any = None) -> Any:
131132
config.aws_endpoint_url = backend_dict.get("aws_endpoint_url")
132133
config.aws_access_key_id = backend_dict.get("aws_access_key_id")
133134
config.aws_secret_access_key = backend_dict.get("aws_secret_access_key")
135+
config.aws_session_token = backend_dict.get("aws_session_token")
134136
config.aws_max_pool_connections = backend_dict.get(
135137
"aws_max_pool_connections", _get_arg("aws_max_pool_connections")
136138
)
@@ -422,6 +424,8 @@ def to_dict(self) -> Dict[str, Any]:
422424
config["aws_endpoint_url"] = self.aws_endpoint_url
423425
config["aws_access_key_id"] = self.aws_access_key_id
424426
config["aws_secret_access_key"] = self.aws_secret_access_key
427+
if self.aws_session_token is not None:
428+
config["aws_session_token"] = self.aws_session_token
425429
if self.aws_max_pool_connections is not None:
426430
config["aws_max_pool_connections"] = self.aws_max_pool_connections
427431

simpletuner/helpers/data_backend/config/text_embed.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def from_dict(cls, backend_dict: Dict[str, Any], args: Dict[str, Any]) -> "TextE
4545
"aws_endpoint_url",
4646
"aws_access_key_id",
4747
"aws_secret_access_key",
48+
"aws_session_token",
4849
"aws_region_name",
4950
}
5051
for key in passthrough_keys:

0 commit comments

Comments
 (0)