Add support for session_token

This commit is contained in:
Victor LABORIE 2024-10-15 20:55:04 +02:00
parent 04341fb9d6
commit 44bac8dbc0
No known key found for this signature in database
GPG key ID: 42EA661D7C96FCB7
2 changed files with 7 additions and 0 deletions

View file

@ -27,6 +27,7 @@ media_storage_providers:
endpoint_url: <S3_LIKE_SERVICE_ENDPOINT_URL> endpoint_url: <S3_LIKE_SERVICE_ENDPOINT_URL>
access_key_id: <S3_ACCESS_KEY_ID> access_key_id: <S3_ACCESS_KEY_ID>
secret_access_key: <S3_SECRET_ACCESS_KEY> secret_access_key: <S3_SECRET_ACCESS_KEY>
session_token: <S3_SESSION_TOKEN>
# Server Side Encryption for Customer-provided keys # Server Side Encryption for Customer-provided keys
#sse_customer_key: <S3_SSEC_KEY> #sse_customer_key: <S3_SSEC_KEY>

View file

@ -81,6 +81,9 @@ class S3StorageProviderBackend(StorageProvider):
if "secret_access_key" in config: if "secret_access_key" in config:
self.api_kwargs["aws_secret_access_key"] = config["secret_access_key"] self.api_kwargs["aws_secret_access_key"] = config["secret_access_key"]
if "session_token" in config:
self.api_kwargs["aws_session_token"] = config["session_token"]
self._s3_client = None self._s3_client = None
self._s3_client_lock = threading.Lock() self._s3_client_lock = threading.Lock()
@ -181,6 +184,9 @@ class S3StorageProviderBackend(StorageProvider):
if "secret_access_key" in config: if "secret_access_key" in config:
result["secret_access_key"] = config["secret_access_key"] result["secret_access_key"] = config["secret_access_key"]
if "session_token" in config:
result["session_token"] = config["session_token"]
if "sse_customer_key" in config: if "sse_customer_key" in config:
result["extra_args"]["SSECustomerKey"] = config["sse_customer_key"] result["extra_args"]["SSECustomerKey"] = config["sse_customer_key"]
result["extra_args"]["SSECustomerAlgorithm"] = config.get( result["extra_args"]["SSECustomerAlgorithm"] = config.get(