なぜかexistsメソッドは存在せず、以下のように例外が発生するかどうかで判別する。これはやりたくないが。。
class S3Repository: def __init__(self, bucket_name: str): s3: ServiceResource = boto3.resource('s3') self.bucket_name = bucket_name self.bucket = s3.Bucket(bucket_name) def exists(self, path: str) -> bool: try: self.bucket.Object(path).load() except botocore.exceptions.ClientError as e: if e.response['Error']['Code'] == "404": return False else: raise Exception() else:
もっとシンプルにやれないものか。