Текст и данные · Инструкция
Проверка checksum после резервного копирования в облако
Checksum отвечает на конкретный вопрос: совпадает ли содержимое файла побайтно при расчёте одним и тем же алгоритмом.
Короткий ответ
Считайте checksum до загрузки и сравнивайте с тем же алгоритмом после неё. Не принимайте S3 ETag за универсальный MD5, особенно при multipart upload.
Что именно доказывает checksum
Checksum подтверждает, что содержимое совпадает побайтно при использовании одного и того же алгоритма. Amazon S3 поддерживает несколько checksum-алгоритмов и может проверять целостность при загрузке и скачивании. нельзя автоматически считать ETag MD5 всего объекта: для multipart upload и ряда режимов шифрования это неверно.
Предупреждение: Сравнивайте только значения одного алгоритма; SHA-256 нельзя сопоставлять с CRC32.
Как сравнить хэш до и после загрузки
- Шаг 1: Выберите один алгоритм, например SHA-256, и сохраните локальное значение до отправки.
- Шаг 2: Загрузите файл способом, который сохраняет или возвращает checksum выбранного алгоритма.
- Шаг 3: Получите облачное значение тем же алгоритмом и сравните строки полностью.
- Шаг 4: Для выборочного аудита скачайте несколько объектов и пересчитайте checksum локально.
Совет: Храните manifest отдельно от самих объектов: без эталонного значения повторный расчёт не даёт ответа, изменился файл или нет.
Почему S3 ETag не всегда MD5
- Сравнивайте только значения одного алгоритма; SHA-256 нельзя сопоставлять с CRC32.
- Не используйте ETag как универсальный MD5 без проверки документации сервиса.
- Храните manifest отдельно от самих объектов: без эталонного значения повторный расчёт не даёт ответа, изменился файл или нет.
Предупреждение: Не используйте ETag как универсальный MD5 без проверки документации сервиса.
Checksum не заменяет restore-test
Не сравнивайте SHA-256 с CRC32 и не считайте визуально похожий идентификатор хэшем нужного алгоритма. В Amazon S3 доступны несколько checksum-алгоритмов, а ETag не является универсальным MD5 для всех способов загрузки: multipart upload и некоторые режимы меняют его смысл. Если сервис не предоставляет удобную end-to-end checksum, скачайте выборку объектов обратно и посчитайте хэш локально. Для большого архива можно хранить manifest с путём, размером и SHA-256 каждого файла, а затем периодически проверять выборку. Контрольная сумма доказывает целостность содержимого, но не заменяет тест восстановления структуры, прав и приложения, которое должно открыть данные после аварии.
Важно: Checksum подтверждает байты, но не гарантирует, что вы умеете восстановить весь набор с правильной структурой и доступами.
Manifest удобнее одиночных хэшей
Для большого архива создайте текстовый manifest с относительным путём, размером и SHA-256. Его можно хранить вместе с документацией backup и подписывать/защищать отдельно. При аудите пересчитайте случайную выборку; при миграции — весь набор. Так контроль целостности масштабируется на тысячи объектов.
Что учитывать
Сравнивайте только значения одного алгоритма; SHA-256 нельзя сопоставлять с CRC32.,Не используйте ETag как универсальный MD5 без проверки документации сервиса.,Храните manifest отдельно от самих объектов: без эталонного значения повторный расчёт не даёт ответа, изменился файл или нет.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. Checking object integrity for data uploads in Amazon S3). Пример и формулировки — редакция N1RO на 2026-09-22.