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)