2017-01-20 4 views
1

Ich habe etwa 2 Millionen Dateien in Untergruppen in einem Bucket verschachtelt und möchte alle in einen anderen Bucket verschieben. Ich habe viel Zeit mit der Suche verbracht ... Ich habe eine Lösung gefunden, um den Befehl AWS CLI mv/sync zu verwenden. Verwenden Sie den Befehl "Verschieben" oder verwenden Sie den Befehl "Sync" und löschen Sie anschließend alle Dateien nach der erfolgreichen Synchronisierung.aws s3 mv/sync-Befehl

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

oder kann es sein, als

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

Aber das Problem ist, wie würde ich wissen, dass, wie viele Dateien/Ordner verschoben oder synchronisiert und wie viel Zeit es dauern würde ... Und was passiert, wenn eine Ausnahme auftritt (Maschine/Server stoppt/Internet-Verbindung aus irgendeinem Grund) ... Ich muss den Befehl erneut ausführen oder er wird sicher alle Dateien vervollständigen und verschieben/synchronisieren. Wie kann ich sicher sein, wie viele Dateien verschoben/synchronisiert und Dateien nicht verschoben/synchronisiert wurden?

oder kann ich etwas wie die

ich begrenzte Anzahl von Dateien zu verschieben, zB 100,000 .. und wiederholen, bis alle Dateien verschoben werden ...

oder Dateien auf der Basis von hochgeladenen Zeit bewegen. B. Dateien vom Startdatum bis zum Enddatum hochgeladen

wenn ja .. wie?

+1

Haben Sie es versucht? 'aws s3 sync' * sollte * sicher unterbrechbar sein und sollte dort wieder auftauchen, wo es aufgehört hat, wenn Sie es neu starten. Es ist im Wesentlichen unmöglich, einen Teil eines einzelnen Objekts in S3 zu kopieren - auf der Objektebene ist entweder die gesamte Kopie intakt oder der neue Bucket hat dieses Objekt überhaupt nicht. –

+0

@ Michael-sqlbot ... Ich kann es nicht versuchen, da Dateien zu viel sind und wie würde ich wissen, wie viele Dateien synchronisiert wurden ... gibt es eine Möglichkeit, so kann ich wissen, wie viele Dateien synchronisiert wurden ... vor dem Neustart es –

+0

Haben Sie es versucht? Ich glaube, dass es die Schlüssel anzeigt, wie es fortschreitet, und sie werden in der lexikalischen Reihenfolge getan. –

Antwort

0

So verschieben sie verwenden:

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

Sie den Befehl wiederholen, nachdem es ohne Frage beenden (oder nicht). Dadurch wird überprüft, ob etwas vom Ziel-S3-Bucket abweicht oder nicht, und es wird erneut verarbeitet.

Die Zeit hängt davon ab, wie groß die Dateien sind, wie viele Objekte Sie haben. Amazon zählt Verzeichnisse als ein Objekt, also sind sie auch wichtig.