Python – S3 Bucket Backup (boto3)

Below is a ready-to-use script. Review and adapt variables to your environment.

#!/usr/bin/env python3
import boto3, os, sys
s3 = boto3.client('s3')
bucket = sys.argv[1]; prefix = sys.argv[2] if len(sys.argv)>2 else ''
local = sys.argv[3] if len(sys.argv)>3 else './backup'
os.makedirs(local, exist_ok=True)
paginator = s3.get_paginator('list_objects_v2')
for page in paginator.paginate(Bucket=bucket, Prefix=prefix):
    for obj in page.get('Contents', []):
        key = obj['Key']; path = os.path.join(local, key)
        os.makedirs(os.path.dirname(path), exist_ok=True)
        s3.download_file(bucket, key, path)
print('Done.')
  

← Back to SQL