web-dev-qa-db-fra.com

Comment déplacer des fichiers d'Amazon ec2 vers un compartiment s3 à l'aide de la ligne de commande

Dans mon instance 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 compartiment S3. Comment puis-je faire ceci?

19
Pacts Ramun

Première option sm3cmd

Utilisez s3cmd

s3cmd get s3://AWS_S3_Bucket/dir/file

Jetez un coup d’œil à cette documentation s3cmd

si vous êtes sur 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

Utilisation de Cli d'Amazon

Mettre à jour

Comme @ tedder42 a déclaré 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 d'exemples disponibles sur Gestion des objets à l'aide de commandes de haut niveau s3 avec l'interface de ligne de commande AWS

24
Ethaan
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
  • Important: chaque élément du répertoire nommé sera copié dans le dossier du compartiment s3 que vous avez sélectionné. Cela 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 avec un caractère sauvage pour tout sélectionner. Notez que cela va copier votre répertoire dans son ensemble et également générer des métadonnées et les enregistrer dans votre dossier de compartiment s3.

aws s3 sync . s3://your-s3-bucket-name/folder-name

Voir l'intégralité de mon blog sur Comment se connecter à S3 Bucket à partir d'une instance EC2 - Aide AWS

3
zafrin

Notez également que lors de la synchronisation avec s3, aws cli est multithread et télécharge plusieurs parties d'un fichier à la fois. Le nombre de threads n'est toutefois pas configurable pour le moment.

2
Tim Johnson
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2
1
raju

Nous avons une fonctionnalité DryRun disponible pour les tests.

  • Pour commencer, j'attribuerais à ec2-instance un rôle permettant de lire Écrire sur S3
  • SSH dans l'instance et effectuez les opérations suivantes
  • vi tmp1.txt
  • aws s3 mv ./ s3: //bucketname-bucketurl.com/ --dryrun
  • Si cela fonctionne, tout ce que vous avez à faire est de créer un script pour Télécharger tous les fichiers contenant ce dossier dans le dossier s3.
  • J'ai écrit la commande suivante dans mon script pour déplacer les fichiers Âgés de plus de 2 minutes du répertoire en cours vers le compartiment/dossier
  • cd dir; ls. -rt | xargs -I FICHIERS recherche FICHIERS -maxdepth 1 -nom '*. txt' -mmin +2 -exec aws s3 mv '{}' s3: //bucketurl.com
0
AKV