79 votes

Téléchargement de fichiers vers un compte S3 à partir de la ligne de commande Linux

J'ai plusieurs gros fichiers sur mon compte hébergé par Linux que je dois télécharger sur mon compte S3. Je ne veux pas les télécharger d'abord et les charger ensuite dans S3.

Y a-t-il un moyen de le "télécharger" via la ligne de commande Linux ? Ou puis-je y accéder via un site web fonctionnant avec Lynx ?

1voto

duhaime Points 123

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X