Viewing File: /home/ubuntu/codegamaai-test/voice_clone/src/s3_download.py

import boto3
import os
from botocore.exceptions import ClientError
from dotenv import load_dotenv
from src.utils import *

load_dotenv()
s3_client = boto3.client(
    's3',
    aws_access_key_id=os.environ['AWS_ACCESS_KEY_ID'],
    aws_secret_access_key= os.environ['AWS_SECRET_ACCESS_KEY'],
    region_name= os.environ['AWS_DEFAULT_REGION']
)


def download_file_from_s3(s3_url, local_dir):
    parts = s3_url.split('/')
    bucket_name = parts[2].split('.')[0]
    s3_key = '/'.join(parts[3:])
    file_name = s3_key.split('/')[-1]

    local_file_path = os.path.join(local_dir, file_name)

    try:
        s3_client.download_file(bucket_name, s3_key, local_file_path)
        print(f"File downloaded successfully: {local_file_path}")
        return local_file_path
    except ClientError as e:
        print(f"Failed to download file from S3: {e}")
        return None
    
def direct_download(url, local_dir):
    local_file_path = os.path.join(local_dir, url.split('/')[-1])
    try:
        response = requests.get(url)
        with open(local_file_path, 'wb') as f:
            f.write(response.content)
        print(f"File downloaded successfully: {local_file_path}")
        return local_file_path
    except Exception as e:
        print(f"Failed to download file: {e}")
        return None
    
url = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-9.mp3"
local_dir = r"C:\Users\Kal Aana\Music\codegama\rvc_clone\data\sample_3\vid_1\audio"

# download_result = direct_download(url, local_dir)
# print(f"Download result: {download_result}")


# download_result = download_file_from_s3('https://gf-bot.s3.amazonaws.com/859015262_1.mp3_20240328154435.mp3',
#                                         'sample_3', 'vid_1')
# print(f"Download result: {download_result}")
Back to Directory File Manager