s3cmd: KeyError: 'dest_name' beim Versuch, mehrere Dateien zu kopieren

399
zack_falcon

Ich muss einige Dateien in einem S3-Bucket mit Hive verarbeiten. Das Problem ist, dass Hive die Buckets anscheinend nicht gerne als Ordner verwendet, also habe ich mich dazu entschlossen, einen Ordner in einem anderen Bucket zu erstellen und die Dateien dort über s3cmd zu kopieren.

Dies ist mein Befehl:

s3cmd -v cp s3://main.bucket/\* s3://temp.bucket/input/ 

s3cmd erklärt dann prompt, dass ich X-Dateien zum Übertragen habe (normalerweise in der Größenordnung von 5k ++) und dann, nachdem eine Datei kopiert wurde, der folgende Fehler aufgetreten ist:

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! An unexpected error has occurred. Please report the following lines to: s3tools-bugs@lists.sourceforge.net !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  Problem: KeyError: 'dest_name' S3cmd: 1.0.1  Traceback (most recent call last): File "/usr/local/bin/s3cmd", line 2006, in <module> main() File "/usr/local/bin/s3cmd", line 1950, in main cmd_func(args) File "/usr/local/bin/s3cmd", line 614, in cmd_cp subcmd_cp_mv(args, s3.object_copy, "copy", "File %(src)s copied to %(dst)s") File "/usr/local/bin/s3cmd", line 604, in subcmd_cp_mv dst_uri = S3Uri(item['dest_name']) KeyError: 'dest_name'  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! An unexpected error has occurred. Please report the above lines to: s3tools-bugs@lists.sourceforge.net !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 

Nun, das ist scheiße.

Ich dachte, dass das Problem in der Bucket-Bucket-Übertragung liegt, entschied ich mich, einen Ordner innerhalb des main.bucket zu erstellen und einfach alles darin zu kopieren, weil ich zu diesem Zeitpunkt an meinem Ende war.

Der neue Befehl lautet wie folgt:

s3cmd -v cp s3://main.bucket/\* s3://main.bucket/111a/ 

Wieder kopierte es nur eine Datei und gab mir den gleichen Fehler.

Was könnte das bedeuten? Wie kann ich das beheben?

Vielen Dank.

PS Wenn alles andere fehlschlägt, denke ich, ich könnte dies über die Benutzeroberfläche von AWS tun, aber das manuelle Überprüfen jedes Kontrollkästchens ist schmerzhaft. Wenn Sie lange genug nach unten scrollen, werden die Dateien, die Sie oben geprüft haben, dumm vergessen, und Sie werden dazu gezwungen, dies im Schneckentempo zu tun.

Wenn es eine Methode gibt, sie alle gleichzeitig auszuwählen und in ein neues Verzeichnis einzufügen, wäre das großartig.

0

1 Antwort auf die Frage

1
Matt Domsch

Sie verwenden eine sehr alte Version von s3cmd. Ich glaube, dass dieser Fehler in den letzten Jahren behoben wurde. Bitte versuchen Sie es erneut mit dem Upstream-Zweig github.com/s3tools/s3cmd. Bis heute ist 1.5.0-rc1 die aktuellste Version.

Wie aktualisiere ich s3cmd? Ich bin auf einem Mac OSX, übrigens. Irgendwelche Update-Befehle über cmd? zack_falcon vor 9 Jahren 0