J'ai trouvé les liaisons AWS de Python dans le fichier boto
paquet ( pip install boto
) pour être utile pour télécharger des données vers S3.
Le script suivant peut être appelé comme : python script_name.py "sub_bucket_name" "*.zip"
donde sub_bucket_name
indique le nom du répertoire dans lequel les fichiers doivent être stockés dans S3, et *.zip
est un chemin global désignant un ou plusieurs fichiers à télécharger :
import sys, glob, os, boto
from boto.s3.key import Key
def percent_cb(complete, total):
sys.stdout.write('.')
sys.stdout.flush()
id = '< your id here >' # AWS Access Key ID
secret = '< your secret here >' # AWS Secret Access Key
bucket_name = '< your bucket here >' # Bucket wherein content will be stored
conn = boto.connect_s3(id, secret) # Establish a connection to S3
bucket = conn.get_bucket(bucket_name, validate=False) # Connect to bucket
k = Key(bucket) # Connect to the bucket's key
for i in glob.glob(sys.argv[2]): # Read in files to push to S3
sub_bucket = sys.argv[1] # Directory within bucket where files will be stored
k.key = sub_bucket + "/" + os.path.basename(i) # Path each uploaded file will have on S3
k.set_contents_from_filename(i, cb=percent_cb, num_cb=10) # Push data to S3
print 'Uploading %s to Amazon S3 bucket %s' % (i, bucket_name) # Report status