AWS сервис для проверки целостности данных файла в S3 через контрольную сумму? - PullRequest
1 голос
/ 20 января 2020

Один из способов обеспечить файл в S3 - это загрузить его, получить его контрольную сумму и сопоставить результат с ожидаемой контрольной суммой.

Предоставляет ли AWS какую-либо услугу, которая позволяет этому происходить без пользователя, нуждающегося в первой загрузке файла? (т.е. в идеале простой запрос / URL, который предоставляет контрольную сумму файла S3, чтобы его можно было проверить до загрузки файла)

Что я пробовал до сих пор

Я могу придумать самостоятельное решение в духе

  • Создание конечной точки API, которая принимает запрос POST с URL-адресом файла S3
  • Запуск API лямбда-выражение, которое генерирует контрольную сумму файла
  • Ответьте значением контрольной суммы

Это может работать, но уже немного сложнее и требует дополнительных соображений, например, большие файлы могут занимать долго генерировать контрольную сумму (например,> 60 секунд)

Надеюсь AWS есть какой-нибудь простой способ проверки файлов S3?

1 Ответ

1 голос
/ 21 января 2020

Для каждого объекта создается ETag, который является MD5 содержимого объекта.

Однако, похоже, есть некоторые исключения.

Из Общий ответ Заголовки - Amazon Simple Storage Service :

ETag: Тег объекта - это ха sh объекта. ETag отражает изменения только содержимого объекта, а не его метаданных. ETag может быть или не быть дайджестом MD5 данных объекта. Независимо от того, является ли это, зависит от того, как был создан объект и как он зашифрован, как описано ниже:

  • Объекты, созданные с помощью операции PUT Object, POST Object или Copy, или посредством AWS Консоль управления, зашифрованная SSE-S3 или открытым текстом, имеет ETag, которые являются дайджестом MD5 данных их объектов.

  • Объекты, созданные Объект PUT, объект POST или операция копирования, либо через консоль управления AWS и зашифрованные SSE- C или SSE-KMS, имеют ETag, которые не являются дайджестом MD5 их объекта data.

  • Если объект создается с помощью операции Multipart Upload или Part Copy, ETag не является дайджестом MD5 , независимо от метода шифрования.

Кроме того, вычисление ETag для загрузки из нескольких частей может быть сложным. См .: s3cmd - Каков алгоритм вычисления метки Amazon-S3 для файла размером более 5 ГБ? - переполнение стека

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...