Я рассматривал возможность использования AWS cli для проверки целостности данных, чтобы убедиться, что резервная копия была правильно перенесена с файлового сервера Linux на AWS s3. Аналогично, я хотел бы проверить, что при восстановлении файла из резервной копии на файловый сервер Linux он также был перенесен правильно.
Я проверил etag, хранящийся с объектом на S3, потому что, похоже, это md5sum. Однако, если файл передается как multipart в случае больших файлов, etag больше недействителен.
Но прежде чем я пойду дальше и попытаюсь сделать MD5sum для того, что только что было синхронизировано с S3 каждый раз, действительно ли это необходимо? При использовании rsync между файловыми системами Linux через интернет, не принято делать md5sum для переданных файлов, чтобы проверить их. Поскольку предполагается, что я думаю, что rsync уже позаботился об этом?
Мне интересно, выполняет ли AWS cli sync проверку целостности данных за нас?
решение1
Короткий ответ — да, aws s3 sync
и aws s3 cp
вычислить контрольную сумму MD5, и если она не совпадет после завершения загрузки, повторить попытку до пяти раз.
Более развернутый ответ:
AWS CLI вычислит и автоматически заполнит заголовок Content-MD5 как для стандартных, так и для многокомпонентных загрузок. Если контрольная сумма, вычисленная S3, не совпадает с предоставленным Content-MD5, S3 не сохранит объект и вместо этого вернет сообщение об ошибке обратно в AWS CLI. AWS CLI повторит эту ошибку до 5 раз, прежде чем прекратить работу.
Если запрос подписан с помощью , Signature Version 4
то контрольная сумма MD5 не рассчитывается.
Обратите внимание, что AWS CLI добавит заголовок Content-MD5 как для высокоуровневых команд aws s3, которые выполняют загрузку (aws s3 cp, aws s3 sync), так и для низкоуровневых команд s3api, включая aws s3api put-object и aws s3api upload-part.
Ссылка