From 0e6f10f25cacfd3f2882eef866f35325ffd189a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Dlouh=C3=BD?= Date: Sat, 2 Sep 2023 19:52:01 +0200 Subject: [PATCH] [s3] add support for setting "cloudfront_key_id" and "cloudfront_key" through OPTIONS (#1274) --- storages/backends/s3boto3.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/storages/backends/s3boto3.py b/storages/backends/s3boto3.py index cf3e8997..f1d4e1c3 100644 --- a/storages/backends/s3boto3.py +++ b/storages/backends/s3boto3.py @@ -257,6 +257,9 @@ class S3Boto3Storage(CompressStorageMixin, BaseStorage): config = None def __init__(self, **settings): + cloudfront_key_id = settings.pop("cloudfront_key_id", None) + cloudfront_key = settings.pop("cloudfront_key", None) + super().__init__(**settings) check_location(self) @@ -281,6 +284,9 @@ def __init__(self, **settings): if self.transfer_config is None: self.transfer_config = TransferConfig(use_threads=self.use_threads) + if cloudfront_key_id and cloudfront_key: + self.cloudfront_signer = self.get_cloudfront_signer(cloudfront_key_id, cloudfront_key) + def get_cloudfront_signer(self, key_id, key): return _cloud_front_signer_from_pem(key_id, key)