2016-01-28 3 views
10

Es war viel zu schwierig, das herauszufinden. Es war nicht offensichtlich für mich und viele Erklärungen haben wichtige Details weggelassen. Ich werde das mit der Lösung beantworten. Tut mir leid, wenn es Ihnen offensichtlich erscheint, aber angesichts der vielen Recherchen und Experimente, die ich dafür benötigte, denke ich, dass es sich lohnt, anderen zu zeigen, wie es geht.Wie mache ich eine S3-Kopie zwischen Regionen mit aws CLI?

+1

Auch für die Zukunft, Dokumentation ist hier: https://docs.aws .amazon.com/cli/neuste/referenz/s3/cp.html –

+0

Danke John, aber das hat mir nicht wirklich geholfen, als ich versuchte, das herauszufinden. Die Probleme, die ich hatte, waren, dass diese Dokumentation kein Beispiel für eine Kreuzregion enthielt und, was noch wichtiger war, die Fehlermeldung, die ich bekam, als ich versuchte, sie auszuführen, schien zu bedeuten, dass meine URIs geändert werden mussten. Ich wäre in der Lage gewesen, es leicht herauszufinden, entweder war die Fehlermeldung klarer, oder wenn die Dokumentation ein Beispiel für eine explizite Kreuzregion-Kopie lieferte. – Solx

Antwort

12

Der Trick besteht darin, sowohl die Quell- als auch die Zielregion explizit anzugeben. Sie könnten nicht immer erforderlich sein, aber es tut nicht weh, immer um ihnen zu zeigen:

$ aws s3 cp s3://my-source-bucket-in-us-west-2/ \ 
     s3://my-target-bucket-in-us-east-1/ \ 
     --recursive --source-region us-west-2 --region us-east-1 

oder Windows

> aws s3 cp s3://my-source-bucket-in-us-west-2/^
      s3://my-target-bucket-in-us-east-1/^
      --recursive --source-region us-west-2 --region us-east-1 
+1

Dies scheint nicht mehr benötigt zu werden. Ich habe versucht, Daten über Regionen mit awscli zu kopieren, und es funktioniert out-of-the-box, ohne explizit über Quell- und Ziel-Buckets. –

+0

Wenn Ihre vpc-Sicherheitsrichtlinien oder Ihr Kunde keinen bereichsübergreifenden Zugriff zulassen, müssen Sie möglicherweise einen neuen Bucket (Sie können einen anderen als Vorlage kopieren) mithilfe der Konsole Neuen Bucket erstellen | erstellen Name und Region | usw. Verwenden Sie dann den mitgelieferten Befehl von @solx, um den Inhalt in der Zielregion aufzufüllen. Funktioniert immer noch gut! –