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.
This commit is contained in:
Martin Honermeyer 2018-09-13 23:37:21 +02:00
parent 503fd7ba38
commit 05d9bf6bd6

View file

@ -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},