Skip to content

Commit b6779f3

Browse files
authored
Merge pull request #508 from falkephi/issue-507-custom-session
fix: preserve user supplied session in S3FileSystem constructor
2 parents 0df4f28 + d8340bf commit b6779f3

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

s3fs/core.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ def __init__(
214214
self.use_ssl = use_ssl
215215
self.cache_regions = cache_regions
216216
self._s3 = None
217-
self.session = None
217+
self.session = session
218218

219219
@property
220220
def s3(self):
@@ -375,7 +375,8 @@ async def set_session(self, refresh=False, kwargs={}):
375375
config_kwargs["signature_version"] = UNSIGNED
376376

377377
conf = AioConfig(**config_kwargs)
378-
self.session = aiobotocore.AioSession(**self.kwargs)
378+
if self.session is None:
379+
self.session = aiobotocore.AioSession(**self.kwargs)
379380

380381
for parameters in (config_kwargs, self.kwargs, init_kwargs, client_kwargs):
381382
for option in ("region_name", "endpoint_url"):

s3fs/tests/test_s3fs.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,15 @@ def test_config_kwargs_class_attributes_override():
227227
assert s3.connect().meta.config.read_timeout == 120
228228

229229

230+
def test_user_session_is_preserved():
231+
from aiobotocore.session import get_session
232+
233+
session = get_session()
234+
s3 = S3FileSystem(session=session)
235+
s3.connect()
236+
assert s3.session == session
237+
238+
230239
def test_idempotent_connect(s3):
231240
first = s3.s3
232241
assert s3.connect(refresh=True) is not first

0 commit comments

Comments
 (0)