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 ce qu'il fait, c'est télécharger les fichiers du premier, puis 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?
Si vous cherchez simplement une solution prête à l'emploi, quelques solutions peuvent le faire. Bucket Explorer fonctionne sur Mac et Windows et peut copier d'un compte à l'autre comme le peut Cloudberry S3 Explorer et Navigateur S mais ils Windows ne peut donc pas fonctionner pour vous.
Je soupçonne que console AWS pourrait également le faire avec la configuration d'autorisations appropriée, mais je n'ai pas testé cela.
Vous pouvez également le faire à l'aide de AWS API tant que vous avez attribué le compte AWS que vous utilisez autorisations d'écriture au compartiment de destination.
Oui, il y a un moyen. Et c'est assez simple, bien que difficile à trouver. 8)
Par exemple, supposons que le premier nom d'utilisateur de votre compte soit [email protected] et le deuxième, [email protected].
Ouvrez AWS Management Console en tant que acc1. Accédez aux propriétés du compartiment Amazon S3 et, dans l'onglet "Autorisations", cliquez sur "Ajouter des autorisations". Ajoutez ensuite les autorisations de liste et d'affichage pour les "utilisateurs authentifiés".
Ensuite, dans AWS IAM (il est accessible depuis les onglets de la console) d’acc2, créez un utilisateur avec un accès complet au compartiment S3 (pour plus de sécurité, vous pouvez configurer des autorisations précises, mais je préfère créer un utilisateur temporaire pour le transfert. puis supprimez-le).
Ensuite, vous pouvez utiliser s3cmd (en utilisant les identifiants du nouvel utilisateur créé dans acc2) pour faire quelque chose comme:
s3cmd cp s3://acc1_bucket/folder/ s3://acc2_bucket/folder --recursive
Tous les transferts seront effectués du côté d'Amazon.
Utilisez le aws cli (j'ai utilisé l'instance ubuntu 14 ec2) et exécutez simplement la commande suivante:
aws s3 sync s3://bucket1 s3://bucket2
Vous devrez spécifier les détails du compte pour l'un et disposer d'un accès en écriture public ou d'un accès en lecture public à l'autre.
Cela synchronisera les deux compartiments. Vous pouvez utiliser la même commande plus tard pour synchroniser rapidement. La meilleure partie est qu’il ne semble pas nécessiter de bande passante (par exemple, les fichiers ne passent pas par un ordinateur local).
Sur Mac OS X, j'ai utilisé l'application Transmit de Panic. 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.
Considérons qu'il existe deux comptes, le compte source et le compte de destination. Et deux seaux source-bucket
et destination bucket
. Nous voulons déplacer tous les fichiers de source-bucket
à destination-bucket
. Nous pouvons le faire en suivant les étapes suivantes:
aws configure
aws s3 ls s3://source-bucket/
aws s3 cp s3://source-bucket s3://destination-bucket --recursive
aws s3 mv s3://source-bucket s3://destination-bucket --recursive
Alternative, vous pouvez utiliser la commande de synchronisation - aws s3 sync s3://source-bucket s3://detination-bucket
Pour une meilleure explication, suivez le lien
Vous pouvez utiliser Cyberduck (open source)
CrossFTP peut copier des fichiers S3 directement d’un compartiment à un autre sans les télécharger. C'est un client S3 à interface graphique qui fonctionne sous Windows, Mac et Linux.
Pour les fichiers nouvellement créés (PAS les objets existants), vous pouvez tirer parti des nouvelles fonctionnalités d'AWS. Il s'agit d'une réplication entre régions (sous "Gestion des versions" pour le compartiment S3). Vous pouvez créer une stratégie qui vous permettra de répliquer de nouveaux objets dans un compartiment d'un autre compte.
Pour les objets existants, vous devrez toujours copier vos objets en utilisant une autre méthode - à moins qu'AWS n'introduise une fonctionnalité native pour cela à l'avenir.