s3cmd ist ein kleines CLI-Tool, welches die Verwaltung von Amazon S3 ermöglicht. Beim hochladen von Dateien mit der Version 1.0.1 aus dem Paketmanager zeigte sich jedoch folgendes Bild:
WARNING: Upload failed: test ([Errno 32] Broken pipe) WARNING: Retrying on lower speed (throttle=1.25) WARNING: Waiting 15 sec... test -> s3://testbucket/test [1 of 1] 1234 of 5678 0% in 1s 1.23 kB/s failed ERROR: Upload of 'test' failed too many times. Skipping that file.
Ursache ist in meinem Fall, dass mein Bucket nicht in „USA Standard“ liegt. Ältere Versionen von s3cmd greifen jedoch immer dort zu. Zwar leitet Amazon den Request passend um, hierbei scheint sich das Tool jedoch zu verschlucken.
Beheben lässt sich der Fehler auf 2 Arten: Entwerden man nutzt eine neuere Version des Tools, z.B. 1.5.2, diese müssen jedoch meist manuell installiert werden und sind nicht in den Quellen der Paketmanager zu finden. Alternativ kann man der alten Version auf die Sprünge helfen, in dem man die Server direkt richtig hinterlegt, für Irland z.B.:
[default] ... bucket_location = IE ... host_base = s3-eu-west-1.amazonaws.com host_bucket = %(bucket)s.s3-eu-west-1.amazonaws.com ... use_https = True