Мы только что добавили средство автообновления в наше программное обеспечение и получили отчет об ошибке, в котором говорится что автообновление не завершится должным образом, поскольку контрольная сумма sha1 загруженного файла не совпадает. Мы размещены на Amazon S3 ...
Это либо что-то не так с моим кодом, либо что-то не так с S3.
Я перечитал свой код на предмет подозрительных вещей и написал простой скрипт, загружающий и проверяющий контрольную сумму загруженного файла, и действительно иногда получал несколько ошибок (1 из 40 вчера). Сегодня вроде нормально.
Были ли у вас проблемы такого рода? Есть ли какое-то обходное решение?
доп. информация: тест проводился в Японии.





Кроме простоя несколько недель назад. Ничего из того, о чем я слышал. Они проделали хорошую работу, учитывая, что однажды он не работал из-за неясной ошибки сервера, которая каскадно распространилась по всему облаку. Они были очень открыты по этому поводу и разрешили его, как только узнали (это произошло на выходных, iirc).
Так что они довольно надежны. Мой совет - дважды проверьте свой код. И обратитесь в службу поддержки Amazon, если проблема не исчезнет.
Я согласен, было бы неплохо перепроверить ваш код. Я не говорю, что этого не может быть, но я не верю, что когда-либо видел это, и сейчас я довольно хорошо использовал S3. Однако у меня несколько раз возникали неправильные исключения / разрывы соединения, и в итоге получались фрагменты, которые не соответствовали тому, что я ожидал.
Я был бы очень удивлен, если бы они на самом деле отправили неверные данные, но, как всегда, возможно все.
Больше, чем отправка неверных данных, я думаю, что получил ERROR403. Если я просто попробую еще раз, это нормально.
И я согласен: я видел много сообщений о людях, которые говорили о том, что Amazon полностью не работает, но никто не говорил об ошибке «иногда мне отказывают в доступе», так что я предполагаю, что это может быть ошибка на моей стороне. Я только что настроил лог на амазонке.
В любом случае, спасибо! Я последую твоему совету и перестану обвинять «другого парня».
Иногда я получаю неожиданные ошибки 404 с объектами GET, которые являются частью предыдущего СПИСКА, но являются новыми для корзины, и другим разным. ошибки (например: 403 на моем идентификаторе доступа и секретном ключе), но ничего катастрофического.
Мой код работает на стороне сервера, поэтому я добавил надежную обработку ошибок и ведение журнала. Я думаю, что это мудрый поступок, если любое время у вас есть один сервер в сети, обменивающийся данными с другим сервером. :П
Amazon S3 иногда дает сбой с ошибками во время загрузки или выгрузки - обычно с ошибками «500: Internal Server». Частота ошибок обычно довольно низкая, но может резко возрасти, если служба находится под большой нагрузкой. Частота ошибок никогда не равна 0%, поэтому даже в лучшем случае случайный запрос не удастся.
Вы проверяете код ответа HTTP в своем автообновлении? В противном случае вы должны убедиться, что загрузка прошла успешно (HTTP 200), прежде чем выполнять контрольную сумму. В идеале ваше приложение должно повторять неудачные загрузки, потому что временные ошибки - это неизбежная «особенность» S3, с которой клиенты должны иметь дело.
Стоит отметить, что если ваши клиенты получают 500 ошибок, вы, вероятно, не увидите никаких свидетельств этого в журналах сервера S3. Кажется, что эти ошибки возникают до того, как запрос достигает компонента ведения журнала службы.
Ни разу не слышал о проблеме во время загрузки. Это странно. При загрузке я получаю ТОННЫ из 500 сообщений об ошибках внутреннего сервера. Вот почему у меня есть демон, который загружается, пока пользователь делает что-то еще.
Кажется, что в вашем коде что-то не так, возможно, что-то действительно не так с S3 (или с S3-> Japan.)
Вы можете попробовать запустить сервер EC2 и просто запустить тест оттуда (трафик не будет стоить никаких денег, поэтому используйте столько, сколько хотите!) И посмотрите, не возникнут ли ошибки. Если да, то вам не повезло, и S3 не для вас :)
Удачи!
хорошо, это все немного устарело, но для справки. Я только что выполнял перенос данных нескольких гигабайт данных с сервера EC2 прямо в s3. Я получаю 500 ошибок примерно каждые 10 минут, что составляет около 1% от PUT. Так что да, у S3 есть проблема с 500 ошибками.
Однако не слишком много сделал для GET, поэтому не могу комментировать