import logging import boto3 logger = logging.getLogger(__name__) class S3Client: def __init__(self, *, region_name: str, session: boto3.Session) -> None: self.client = session.client("s3", region_name=region_name) def get_object_content(self, bucket: str, key: str) -> str: """Get object content as string.""" try: response = self.client.get_object(Bucket=bucket, Key=key) return response["Body"].read().decode("utf-8") except Exception as exc: logger.error( "Failed to get object content from S3.", exc_info=exc, extra={"bucket": bucket, "key": key}, ) raise