Das hat in meinem Fall geholfen:
- mach
s3cmd ls
auf dem Eimer - es hat eine Warnung über eine Umleitung ausgegeben
- ersetzen Sie die
bucket_host
im.s3cfg
Datei mit der aus der Warnung. - wiederhole
s3cmd ls
, es sollte keine Warnung mehr ausgegeben werden - Datei erneut hochladen
meine .s3cfg ist jetzt:
host_bucket = %(bucket)s.s3-external-3.amazonaws.com
Es gibt einige häufige Probleme, die dazu führen, dass s3cmd den von Ihnen erwähnten Fehler zurückgibt:
- Ein nicht vorhandener (z. B. falsch geschriebener Bucket-Name; oder ein Bucket, der noch nicht bereitgestellt wurde)
- Leerzeichen am Ende Ihrer Authentifizierungswerte (Schlüssel/ID)
- Eine ungenaue Systemuhr. Es ist möglich, Wireshark (über eine http - nicht https-Verbindung) zu verwenden, um zu sehen, wie Ihre Systemuhr mit der Uhr von S3 übereinstimmt - sie sollten innerhalb weniger Sekunden übereinstimmen. Erwägen Sie die Verwendung von NTP zum Synchronisieren Ihrer Uhr, wenn dies ein Problem darstellt.
Alternativen zu s3cmd:
- s3cp – ein Java-basiertes Skript, das gute Funktionen zum Übertragen von Dateien nach S3 und ausführlichere Fehlermeldungen als s3cmd bietet
- aws – ein Perl-basiertes Skript, geschrieben von Tim Kay, das einfachen Zugriff auf die meisten AWS-Funktionen (einschließlich S3) bietet und sehr beliebt ist.
Wenn Sie Ihr eigenes Skript schreiben möchten, können Sie die Python-Boto-Bibliothek verwenden, die über Funktionen zum Ausführen der meisten AWS-Operationen verfügt und viele Beispiele online zur Verfügung stellt. Es gibt ein Projekt, das einige der boto-Funktionen auf der Befehlszeile verfügbar macht - obwohl derzeit nur ein sehr kleiner Satz von Funktionen verfügbar ist.
Ich hatte das gleiche Problem mit Ubuntu s3cmd
Befehl.
Das Herunterladen der neuesten stabilen Version (1.0.1) löste das Problem:http://sourceforge.net/projects/s3tools/files/s3cmd/