From 0006c6f0fdaeca5df7cc03a8e806943c625d6e7e Mon Sep 17 00:00:00 2001 From: Vimpas Date: Thu, 22 Aug 2024 09:45:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(storage):=20=F0=9F=90=9B=20Create=20S3=20bu?= =?UTF-8?q?cket=20if=20it=20doesn't=20exist=20(#7514)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: 莫岳恒 --- api/extensions/storage/s3_storage.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/api/extensions/storage/s3_storage.py b/api/extensions/storage/s3_storage.py index 022ce5b14a..424d441cdc 100644 --- a/api/extensions/storage/s3_storage.py +++ b/api/extensions/storage/s3_storage.py @@ -28,6 +28,16 @@ class S3Storage(BaseStorage): region_name=app_config.get("S3_REGION"), config=Config(s3={"addressing_style": app_config.get("S3_ADDRESS_STYLE")}), ) + # create bucket + try: + self.client.head_bucket(Bucket=self.bucket_name) + except ClientError as e: + # if bucket not exists, create it + if e.response["Error"]["Code"] == "404": + self.client.create_bucket(Bucket=self.bucket_name) + else: + # other error, raise exception + raise def save(self, filename, data): self.client.put_object(Bucket=self.bucket_name, Key=filename, Body=data)