2017-01-20 4 views
1

J'ai environ 2 millions de fichiers imbriqués dans des sous-dossiers dans un compartiment et je veux tous les déplacer dans un autre compartiment. Passer beaucoup de temps à chercher ... j'ai trouvé une solution pour utiliser la commande AWS CLI mv/sync. Utilisez la commande move ou utilisez la commande sync, puis supprimez tous les fichiers après une synchronisation réussie.aws Commande s3 mv/sync

aws s3 mv s3://mybucket/ s3://mybucket2/ --recursive

ou il peut être aussi

aws s3 sync s3://mybucket/ s3://mybucket2/ 

Mais le problème est comment pourrais-je savoir que le nombre de fichiers/dossiers sont déplacés ou synchronisés et combien de temps faudrait-il ... Et si une exception se produisait (arrêt machine/serveur/déconnexion internet pour une raison quelconque) ... je dois à nouveau exécuter la commande ou il faudra sûrement compléter et déplacer/synchroniser tous les fichiers. Comment puis-je être sûr du nombre de fichiers déplacés/synchronisés et des fichiers non déplacés/synchronisés?

ou que je peux avoir quelque chose comme ça

Je propose nombre limité de fichiers, par exemple de 100 mille .. et répéter jusqu'à ce que tous les fichiers sont déplacés ...

ou déplacer des fichiers sur la base du temps uploadé. par exemple les fichiers téléchargés de la date de début à la date de fin

si oui .. comment?

+1

Avez-vous essayé? 'aws s3 sync' * devrait * être interruptible en toute sécurité et devrait reprendre là où il s'était arrêté si vous le redémarrez. Il est essentiellement impossible de copier une partie d'un seul objet dans S3 - au niveau de l'objet, soit la copie entière réussit intacte, soit le nouveau bucket n'aura pas du tout cet objet. –

+0

@ Michael-sqlbot ... je ne peux pas essayer car les fichiers sont trop nombreux et comment puis-je savoir combien de fichiers ont été synchronisés .... y at-il un moyen de savoir combien de fichiers ont été synchronisés ... avant de redémarrer –

+0

L'avez vous essayé? Je crois qu'il affiche les clés au fur et à mesure et qu'elles sont faites dans l'ordre lexical. –

Répondre

0

Pour les déplacer, utilisez:

aws s3 sync s3://mybucket/ s3://mybucket2/ 

Vous pouvez répéter la commande, après la fin (ou échec) sans problème. Cela vérifiera si quelque chose est absent/différent du seau cible s3 et le traitera à nouveau.

La durée dépend de la taille des fichiers et de la quantité d'objets dont vous disposez. Amazon compte les répertoires en tant qu'objet, donc ils comptent aussi.