From 05d9bf6bd6503276ff692bedc369bf4cb7677418 Mon Sep 17 00:00:00 2001 From: Martin Honermeyer Date: Thu, 13 Sep 2018 23:37:21 +0200 Subject: [PATCH] Create a separate boto3 session for each file store thread This prevents threading problems, see https://boto3.amazonaws.com/v1/documentation/api/latest/guide/resources.html#multithreading-multiprocessing. --- s3_storage_provider.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/s3_storage_provider.py b/s3_storage_provider.py index bb97c66..8cd9482 100644 --- a/s3_storage_provider.py +++ b/s3_storage_provider.py @@ -54,7 +54,8 @@ class S3StorageProviderBackend(StorageProvider): """See StorageProvider.store_file""" def _store_file(): - boto3.resource('s3', **self.api_kwargs).Bucket(self.bucket).upload_file( + session = boto3.session.Session() + session.resource('s3', **self.api_kwargs).Bucket(self.bucket).upload_file( Filename=os.path.join(self.cache_directory, path), Key=path, ExtraArgs={"StorageClass": self.storage_class},