Ответ 1
Если вы используете REST API для загрузки объекта (до 5 ГБ) за одну операцию, вы можете добавить заголовок Content-MD5 в PUT запрос. Согласно документации S3 для PUT, заголовок Content-MD5:
base64 128-разрядный MD5 дайджест сообщения (без заголовков) в соответствии с RFC 1864. Этот заголовок может использоваться как проверка целостности сообщения, чтобы убедиться, что данные являются одними и теми же данными который был первоначально отправлен. Хотя это необязательно, мы рекомендуем использовать механизм Content-MD5 в качестве сквозной проверки целостности.
Отметьте этот ответ о том, как вычислить 128-битный MD5-код с кодировкой base64. Если вы используете s3curl, вы можете включить вычисляемый дайджест в заголовки запроса с помощью параметра - contentMd5.
Если сборник md5, вычисленный Amazon после завершения загрузки, не соответствует дайджесту md5, который вы предоставили в заголовке Content-MD5, Amazon ответит кодом ошибки BadDigest.
Если вы используете многостраничную загрузку, заголовок Content-MD5 служит для проверки целостности каждой части отдельно. После завершения многостраничной загрузки Amazon в настоящее время не предоставляет способ проверить целостность собранного файла.