skillbox/bin/sync_preprod_images.py

35 lines
1.0 KiB
Python

import boto3
import os
def download_files_from_s3(bucket_name, local_directory):
# Initialize a session using your credentials
session = boto3.Session(
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
region_name='YOUR_REGION'
)
# Create an S3 client
s3 = session.client('s3')
# List objects within a given prefix
response = s3.list_objects(Bucket=bucket_name)
if 'Contents' in response:
for item in response['Contents']:
file_name = item['Key']
local_path = os.path.join(local_directory, file_name)
# Make sure directories exist
if '/' in file_name:
os.makedirs(os.path.dirname(local_path), exist_ok=True)
# Download the file
s3.download_file(bucket_name, file_name, local_path)
print(f"Downloaded {file_name} to {local_path}")
# Usage
bucket_name = 'your-bucket-name'
local_directory = '/path/to/your/local/directory'
download_files_from_s3(bucket_name, local_directory)