Итак, суть в том, что я использую boto3 для get_object из S3. Тело ответа содержит объект StreamingBody. Когда я вычисляю сумму sha256 для этого следующим образом:
sha256 = hashlib.sha256()
for line in file_to_extract_from.iter_lines():
sha256.update(line)
print("sha256: {0}".format(sha256.hexdigest()))
Возвращает 16aba5393ad72c0041f5600ad3c2c52ec437a2f0c7fc08fadfc3c0fe9641d7a3
Однако, когда я вычисляю ее, используя мою встроенную в Linux сумму sha256, вместо нее возвращается b7f1ee9373416a49835747455ec4d287bcccc5a4bf8c38156483d46b35ce4dbd
. Интересно, что не так с моей конфигурацией?
РЕДАКТИРОВАТЬ: Задав этот вопрос, я понял, что S3 возвращает мне только содержимое файла и вычисляет хеш на основе этого, где, как на моем Linux яm вычисляя хеш для всего файла. Есть ли способ вычислить хэш для всего файла из S3?