92 votes

Déplacer des fichiers directement d'un compte S3 à un autre?

Jolie question de base mais je n'ai pas trouvé de réponse. Utilisation de Transit Je peux "déplacer" les fichiers d'un compartiment S3 d'un compte AWS vers un autre compartiment S3 d'un autre compte AWS, mais il permet en réalité de télécharger les fichiers du premier, puis de les télécharger vers le second.

Est-il possible de déplacer des fichiers directement d'un compte S3 à un autre sans les télécharger entre les deux?

125voto

side2k Points 846

Oui, il y a un moyen. Et son assez simple, mais il est difficile d'en trouver. 8)

Par exemple, supposons que votre premier compte, nom d'utilisateur est acc1@gmail.com et la deuxième est acc2@gmail.com.

Ouvrir AWS Management Console comme acc1. Obtenir le compartiment Amazon S3 propriétés et dans l'onglet "Autorisations" cliquez sur "Ajouter plus d'autorisations". Puis ajouter la Liste et Afficher les Autorisations pour les "Utilisateurs Authentifiés".

Ensuite, dans AWS IAM (il est accessible à partir de parmi les onglets de la console) de acc2 créer un utilisateur avec un accès complet au compartiment S3 (pour être plus sûr, vous pouvez configurer des autorisations exactes, mais je préfère créer un utilisateur temporaire pour le transfert puis de le supprimer).

Ensuite, vous pouvez utiliser s3cmd (en utilisant les informations d'identification de l'utilisateur nouvellement créé dans acc2) à faire quelque chose comme:

s3cmd cp s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive

Tous les transferts seront effectués sur Amazon.

60voto

Programster Points 579

L'utilisation de l' aws cli (j'ai utilisé ubuntu 14 instance ec2) et il suffit d'exécuter la commande suivante:

aws s3 sync s3://bucket1 s3://bucket2

Vous devez spécifier les informations de compte pour un, et le public, d'avoir accès en écriture publique ou de l'accès en lecture à l'autre.

Cela permettra de synchroniser les deux seaux. Vous pouvez utiliser la même commande plus tard pour synchroniser rapidement. La meilleure partie est qu'il ne semble pas t exiger de toute la bande passante (par exemple, les fichiers ne sont pas en passant par l'ordinateur local).

22voto

Geoff Appleford Points 11796

Si vous êtes à la recherche d'un prêt de solution toute faite il y a quelques solutions qui peuvent le faire. Seau à Explorer fonctionne sur Mac et Windows et peut copier des comptes comme la Chicouté S3 Explorer et S3 Navigateur , mais ils sont Windows seulement, de manière peut ne pas fonctionner pour vous.

Je soupçonne que la console AWS pourrait aussi le faire avec les autorisations appropriées d'installation mais je n'ai pas testé cette.

Vous pouvez aussi le faire en utilisant l' API AWS aussi longtemps que vous avez donné le compte AWS vous utilisez des autorisations d'écriture pour la destination seau.

6voto

Rose Perrone Points 14478

boto fonctionne bien. Voir ce fil . En utilisant boto, vous copiez des objets directement d'un compartiment à un autre, plutôt que de les télécharger sur la machine locale et de les télécharger dans un autre compartiment.

3voto

One Giant Leap AB Points 121

Sur Mac OS XI, l’application Transmit de Panic a été transmise. J'ai ouvert une fenêtre pour chaque compte S3 (à l'aide des clés et des secrets de l'API). Je pouvais alors faire glisser un compartiment d'une fenêtre vers un autre compartiment de l'autre fenêtre. Pas besoin de télécharger les fichiers localement d'abord .

Andrew est correct, Transmit télécharge les fichiers localement, puis les télécharge.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X