2017-03-01 2 views
0

Ich habe einen Bucket A, der ein paar Ordner und eine Reihe von (Root-) Objekten enthält. Ich muss alle Ordner aus Bucket A in Bucket B kopieren, während die Root-Objekte in Bucket A bleiben.aws s3: Dateien können nicht von einem Ordner in einen anderen verschoben/kopiert werden

Ich folgte AWS Anweisungen durch Auswählen der Ordner in Bucket A, klicken Sie auf "Aktionen" - "Ausschneiden" zu Bucket B navigieren und "Paste" drücken.

Alles sah für eine Weile gut aus. Dann erschien plötzlich eine ganze Reihe von The following objects were not copied due to errors from: A.

Was ist extrem seltsam (und schlecht für mich), ist, dass es tat ein paar Dateien verschieben, während die eine resultierende Fehler einfach nicht verschoben werden.

Ich habe sogar alle Rechte an Everyone für die Bucket-Richtlinie für beide Buckets vergeben, da es sich um ein Berechtigungsproblem handelt. Trotzdem werden die fraglichen Dateien nicht verschoben. Kopieren schlägt auch fehl. Ich bin sprachlos. Was könnte hier schief gehen?

Antwort

0

Die Amazon S3-Managementkonsole bietet eine rudimentäre Ausschneiden/Kopieren/Einfügen-Funktion. Allerdings würde ich nicht unbedingt auf komplexe Objektgruppen vertrauen.

Eine gute Möglichkeit zum Kopieren/Verschieben von Dateien ist die Verwendung der AWS Command-Line Interface (CLI). Zum Beispiel:

aws s3 cp s3://bucket1/path s3://bucket2/path --recursive 

Um Dateien zwischen Verzeichnissen zu verschieben:

aws s3 mv s3://bucket1/path s3://bucket1/path2 --recursive 
+0

Dank John. Ich habe vergessen, zu der Frage hinzuzufügen, dass ich tatsächlich Ihren Vorschlag versucht habe. Hier ist, was ich habe: 'Kopieren fehlgeschlagen: s3: //bucket1/2016/10/21/file.png bis s3: //bucket2/2016/10/21/file.png Beim Aufruf des CopyObject ist ein Fehler aufgetreten (AccessDenied) Operation: Zugriff verweigert - was ich nicht verstehen kann, da ich die Rolle 'Jeder' mit allen Berechtigungen für beide Buckets habe! Warum sollte ich jetzt einen Zugriff verweigert bekommen? – faboolous

+0

Also, die Frage ist, ob der Zugriff auf die ** Quelle ** verweigert wurde, oder ob es auf dem ** Ziel ** verweigert wurde. Können Sie versuchen, Von und In denselben Bucket zu kopieren, aber auf einen anderen Pfad? Auf diese Weise können Sie überprüfen, welcher Bucket unerwünschte Berechtigungen hat, und dann können Sie die Richtlinien aufschlüsseln. –

+0

'aws s3 cp - rekursiv s3: // bucket1/2016/10/21/s3: // bucket1/test' schlägt mit derselben Fehlermeldung fehl. 'aws s3 cp --recursive s3: // bucket2/2016/10/2 s3: // bucket2/test' ist erfolgreich. Beachten Sie, dass sich die obige bucket2-Operation jedoch auf einem anderen Pfad befindet. Wie auch immer, es scheint mit Bucket1 verwandt zu sein. – faboolous

Verwandte Themen