ctr-ll4 / src /utils /s3 /s3_connect.py
sanjin7's picture
Upload src/ with huggingface_hub
cea4a4b
import boto3
import os
from dotenv import load_dotenv
from src.utils import print_execution_time
load_dotenv()
def s3_connect():
s3 = boto3.resource(
service_name="s3",
region_name=os.environ["AWS_DEFAULT_REGION"],
aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"],
aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"],
)
return boto3.client("s3")
def s3_resource():
s3 = boto3.resource(
service_name="s3",
region_name=os.environ["AWS_DEFAULT_REGION"],
aws_access_key_id=os.environ["AWS_ACCESS_KEY_ID"],
aws_secret_access_key=os.environ["AWS_SECRET_ACCESS_KEY"],
)
return s3
def list_objects_from_prefix(
prefix: str, client=s3_connect(), add_global_folder: bool = True
):
if add_global_folder:
prefix = add_global_s3_folder(prefix)
client = s3_connect()
response = client.list_objects_v2(Bucket="creative-features", Prefix=prefix)
if "Contents" in response.keys():
list_of_paths = [content["Key"] for content in response["Contents"]]
else:
list_of_paths = []
return list_of_paths
def add_global_s3_folder(path):
return f"{os.getenv('S3_PATH')}/{path}"