From 434e92d0e1f461d17aef0e9bd2af789340fc8e81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EB=AA=85=EC=A7=84?= Date: Wed, 28 Feb 2024 13:40:28 +0900 Subject: [PATCH] Fix 403 forbidden error exeception handler --- src/obs3dian/s3.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/obs3dian/s3.py b/src/obs3dian/s3.py index e81b240..e2b2907 100644 --- a/src/obs3dian/s3.py +++ b/src/obs3dian/s3.py @@ -18,7 +18,7 @@ def __init__( bucket_name: str, aws_access_key: str, aws_secret_key: str, - useprofile: bool = True, + useprofile: bool, ) -> None: if useprofile: @@ -30,6 +30,7 @@ def __init__( self.session = boto3.Session( aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, + region_name="ap-northeast-2", ) else: raise ValueError("AWS key is required") @@ -45,9 +46,12 @@ def _check_bucket_exist(self) -> bool: except ClientError as e: error_code = e.response["Error"]["Code"] - if error_code != "404": # if no permission or bad request raise error + if error_code == "404": # if no bukcet return false + return False + elif error_code == "403": # 403 means bucket exists but no permission + return True + else: raise e - return False # 404 is not exists error def _put_public_access_policy(self) -> None: policy = {