35 lines
1.0 KiB
Python
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)
|