From c6b74daa0a87bd02bdd6e82c2cc00e45772a793f Mon Sep 17 00:00:00 2001 From: Garfield Dai Date: Sat, 12 Oct 2024 18:47:59 +0800 Subject: [PATCH] Fix/s3 iam add region name (#7819) --- api/extensions/storage/aws_s3_storage.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/api/extensions/storage/aws_s3_storage.py b/api/extensions/storage/aws_s3_storage.py index fede683aa7..38f823763f 100644 --- a/api/extensions/storage/aws_s3_storage.py +++ b/api/extensions/storage/aws_s3_storage.py @@ -1,3 +1,4 @@ +import logging from collections.abc import Generator from contextlib import closing @@ -8,6 +9,8 @@ from flask import Flask from extensions.storage.base_storage import BaseStorage +logger = logging.getLogger(__name__) + class AwsS3Storage(BaseStorage): """Implementation for Amazon Web Services S3 storage.""" @@ -17,9 +20,14 @@ class AwsS3Storage(BaseStorage): app_config = self.app.config self.bucket_name = app_config.get("S3_BUCKET_NAME") if app_config.get("S3_USE_AWS_MANAGED_IAM"): + logger.info("Using AWS managed IAM role for S3") + session = boto3.Session() - self.client = session.client("s3") + region_name = app_config.get("S3_REGION") + self.client = session.client(service_name="s3", region_name=region_name) else: + logger.info("Using ak and sk for S3") + self.client = boto3.client( "s3", aws_secret_access_key=app_config.get("S3_SECRET_KEY"),