Comment déplacer des fichiers de amazon ec2 vers S3 bucket en utilisant la ligne de commande
dans mon exemple amazon EC2, j'ai un dossier nommé uploads
. Dans ce dossier j'ai 1000 images. Maintenant je veux copier toutes les images dans mon nouveau seau S3. Comment puis-je faire cela?
5 réponses
première Option sm3cmd
Utiliser s3cmd
s3cmd get s3://AWS_S3_Bucket/dir/file
regardez cette documentation s3cmd
si vous êtes sous linux, lancez ceci sur la ligne de commande:
sudo apt-get install s3cmd
ou Centos, Fedore.
yum install s3cmd
Exemple d'utilisation:
s3cmd put my.file s3://pactsRamun/folderExample/fileExample
Deuxième Option
en utilisant Cli d'amazon
mise à Jour
comme @tedder42 l'a dit dans les commentaires, au lieu d'utiliser cp
, utilisez sync
.
regardez la syntaxe suivante:
aws s3 sync <source> <target> [--options]
Exemple:
aws s3 sync . s3://my-bucket/MyFolder
plus d'informations et exemples disponibles à gestion des objets à L'aide de commandes s3 de haut niveau avec L'Interface en ligne de commande AWS
notez aussi sur aws cli la synchronisation avec s3 il est multithreaded et télécharge plusieurs parties d'un fichier à la fois. Le nombre de threads n'est cependant pas configurable pour le moment.
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
- important: cela copiera chaque élément de votre répertoire nommé dans le dossier S3 bucket que vous avez sélectionné. Ceci ne copiera pas votre répertoire dans son ensemble.
ou, vous pouvez utiliser la commande suivante pour un fichier sélectionné.
aws s3 sync your-dir-name/file-name s3://your-s3-bucket-name/folder-name/file-name
ou vous pouvez sélectionner tout avec un caractère sauvage. Notez que cela va copier votre répertoire dans son ensemble et aussi générer des métadonnées et les enregistrer dans votre dossier S3 bucket.
aws s3 sync . s3://your-s3-bucket-name/folder-name
Voir la totalité de mon blog sur comment se connecter à S3 Bucket à partir D'une Instance EC2 – aide AWS
nous avons une fonction dryrun disponible pour les tests.
- pour commencer, j'attribuerais à ec2-instance un rôle à lire Ecrire à S3
- SSH dans l'instance et effectuer ce qui suit
- vi tmp1.txt
- aws s3 mv ./s3:/ / bucketname-bucketurl.com / -- dryrun
- Si cela fonctionne, alors tout ce que vous avez à faire est de créer un script pour téléchargez tous les fichiers spécifiques à partir de ce dossier dans S3 bucket
- je l'ai fait le written la commande suivante dans mon script pour déplacer fichiers de plus de 2 minutes du répertoire courant au seau / dossier
- CD dir; ls . -rt | xargs -I FICHIERS rechercher des FICHIERS -maxdepth 1 -nom "*.txt' - mmin +2-exec aws s3 mv '{} ' S3: / / bucketurl.com
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2