Aws s3 - s3cmd: "ПРЕДУПРЕЖДЕНИЕ: подписи MD5 не совпадают" - что делать?
Когда я использую s3cmd для выталкивания файлов (из не необоснованного размера - менее 100 мегабайт), я иногда вижу эту ошибку:
ПРЕДУПРЕЖДЕНИЕ: Подписи MD5 не совпадают: вычислено = BLAH, получено = "NOT-BLAH"
Googling предполагает, что это может быть вызвано файлами S3 сегментов. Другие говорили, что игнорируют это.
Кто-нибудь знает, почему это происходит и что нужно делать?
Спасибо за ваше время,
- Генри
Ответы
Ответ 1
Взглянув на это глубже, кажется, что s3cmd читает неправильную сумму md5 от Amazon. Похоже, что s3cmd получает свою сумму из поля ETAG. Сравнивая фактические данные объекта, который был PUT с объектом, который был GET'ed, содержимое идентично, и эту ошибку можно безопасно игнорировать.
Ответ 2
ETag файла в S3 не будет соответствовать MD5, если файл был загружен как "Multipart". Когда файл отмечен multipart AWS будет хэш каждой части, объедините результаты и затем хэш это значение.
Если файл фактически не имеет нескольких частей, результатом будет хэш хэша с добавленным -1 до конца. Попробуйте отключить multipart в инструменте, который вы используете для загрузки файлов на S3. Для s3cmd параметр --disable-multipart.
Ответ 3
Ожидаются ETags с '-' в них, если файл был загружен с использованием функции загрузки многостраничных файлов S3 (обычно используется для файлов > 15 МБ или файлов, считанных из stdin). s3cmd 1.5.2 это знает и игнорирует такие ETags. Если ваш s3cmd старше 1.5.2, обновите его.
Ответ 4
Это большая проблема, так как вы используете s3cmd sync, потому что это заставляет его повторно загружать ранее синхронизированные файлы. Чтобы решить эту проблему, добавьте параметр --no-check-md5
, который заставляет s3cmd проверять размеры файлов только для определения измененных файлов (это полезно для моих целей, но, вероятно, не для всех, в зависимости от приложения).
Ответ 5
Я видел сообщения около часа назад о том, что S3 в настоящее время имеет именно эту проблему, например. этот твит:
RT @drags: @ylastic S3 возвращает неверные md5s в s3cmd. Никогда не видел md5 с "-" в нем до AWS. #AWS # S3
Хотя Страница статуса AWS не сообщает об ошибке, я ожидаю, что это временная проблема. Повторите попытку в ближайшее время: -)