Раньше это был мой любимый агент резервного копирования, но теперь я часто получаю такой результат от s3cmd на том же сервере / сети Ubuntu:
root@server:/home/backups# s3cmd put bkup.tgz s3://mybucket/
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
36864 of 2711541519 0% in 1s 20.95 kB/s failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.00)
WARNING: Waiting 3 sec...
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
36864 of 2711541519 0% in 1s 23.96 kB/s failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.01)
WARNING: Waiting 6 sec...
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
28672 of 2711541519 0% in 1s 18.71 kB/s failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.05)
WARNING: Waiting 9 sec...
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
28672 of 2711541519 0% in 1s 18.86 kB/s failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.25)
WARNING: Waiting 12 sec...
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
28672 of 2711541519 0% in 1s 15.79 kB/s failed
WARNING: Upload failed: /bkup.tgz ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=1.25)
WARNING: Waiting 15 sec...
bkup.tgz -> s3://mybucket/bkup.tgz [1 of 1]
12288 of 2711541519 0% in 2s 4.78 kB/s failed
ERROR: Upload of 'bkup.tgz' failed too many times. Skipping that file.
Это происходит даже с файлами размером до 100 МБ, поэтому я полагаю, что проблема не в размере. Это также происходит, когда я использую put с флагом --acl-private (s3cmd версии 1.0.1)
Буду признателен, если вы предложите какое-нибудь решение или легкую альтернативу s3cmd.
В моем случае это помогло:
s3cmd ls
на ведреbucket_host
в .s3cfg
файл с тем из предупреждения. s3cmd ls
, он больше не должен выводить предупреждениемой .s3cfg теперь:
host_bucket = %(bucket)s.s3-external-3.amazonaws.com
Существует несколько распространенных проблем, из-за которых s3cmd возвращает указанную вами ошибку:
Альтернативы s3cmd:
Если вы хотите написать свой собственный скрипт, вы можете использовать библиотеку Python Boto, которая имеет функции для выполнения большинства операций AWS и имеет множество примеров, доступных в Интернете. Eсть проект который предоставляет некоторые функции boto в командной строке, хотя в настоящее время доступен очень небольшой набор функций.
У меня была такая же проблема с Ubuntu s3cmd
команда.
Загрузка последней стабильной версии (1.0.1) решила эту проблему: http://sourceforge.net/projects/s3tools/files/s3cmd/
Попробовав все вышеперечисленное, я заметил, что у меня все еще проблема с дросселированием с использованием s3cmd put, но вместо этого я не использую s3cmd sync. Надеюсь, это может быть кому-то полезно для быстрого исправления :)
У меня была такая же проблема, и я нашел решение Вот в ответ Samwise.
Эта проблема возникла, когда я начал экспериментировать с IAM. В моем случае проблема была в ARN. Я перечислил arn:aws:s3:::bucketname
вместо того arn:aws:s3:::bucketname/*
Вот почему у меня не было проблем с $ s3cmd ls s: // bucketname, но я не мог загрузить туда ни одного файла ((
Каждую секунду у меня была загрузка нескольких частей с s3cmd sync
сбой с этой ошибкой:
WARNING: Upload failed: /large-file.gz?partNumber=13&uploadId=FOOBAR ([Errno 32] Broken pipe)
WARNING: Retrying on lower speed (throttle=0.00)
WARNING: Waiting 3 sec...
Следующая загрузка прошла бы отлично, но потом снова не удалось и так далее.
Я получил это работает с --limit-rate=
опция установлена на 4m
так что скорость загрузки ограничивается максимум 4 МБ / с.
Итак, полная настройка
s3cmd sync --limit-rate=4m ...
Это также часто вызвано настройками HTTPS вашего файла .s3cfg.
Попробуйте изменить параметр конфигурации с use_https = False на use_https = True в файле .s3cfg
Помните, что корзины Amazon перенаправляют на Https и, следовательно, все повторные попытки. Я довольно часто вижу эту проблему в поле.