Amazon S3 & Checksum - PullRequest
       9

Amazon S3 & Checksum

14 голосов
/ 23 декабря 2011

Я пытаюсь проверить целостность файла, который был загружен в корзину, но я не нахожу никакой информации об этом.

В заголовках файла есть «E-tag», но ядумаю, это не контрольная сумма md5.

Итак, как я могу проверить, совпадает ли файл, который я загрузил на Amazon S3, с моим компьютером?

Спасибо.:)

1 Ответ

24 голосов
/ 24 декабря 2011

Если вы используете API REST для загрузки объекта (до 5 ГБ) за одну операцию, вы можете добавить заголовок Content-MD5 в запрос PUT . Согласно документации S3 для PUT, заголовок Content-MD5:

128-битный MD5 дайджест сообщения (без заголовков) в кодировке base64 в соответствии с RFC 1864. Этот заголовок может использоваться в качестве проверки целостности сообщения для проверки того, что данные представляют собой те же данные, которые был первоначально отправлен. Хотя это и необязательно, мы рекомендуем использовать механизм Content-MD5 в качестве сквозной проверки целостности.

Проверьте этот ответ о том, как вычислить 128-битный дайджест MD5 в кодировке base64. Если вы используете s3curl , вы можете включить вычисленный дайджест в заголовки вашего запроса, используя опцию - contentMd5 .

Если дайджест md5, вычисленный Amazon по завершении загрузки, не совпадает с дайджестом md5, который вы указали в заголовке Content-MD5, Amazon ответит кодом ошибки BadDigest .

Если вы используете многочастную загрузку, заголовок Content-MD5 служит для проверки целостности каждой части в отдельности. После завершения многоэтапной загрузки Amazon в настоящее время не предоставляет способ проверки целостности собранного файла.

...