Репутация Сообщений: Amazon S3 & Checksum, How to encode md5 sum into base64 in BASHКак программно получить контрольную сумму MD5 Amazon S3 файл, используя Boto
я должен загрузить файл из дегтя S3 ведро с ограниченным доступом. [Главным образом права доступа предоставляются только для загрузки]
после загрузки я должен проверить контрольную сумму MD5 загруженного файла против MD5-Check Sum данных, присутствующих в качестве метаданных в S3
Я сейчас использую S3, чтобы вручную отметить «x-amz-meta-md5» заголовка содержимого и проверить это значение по сравнению с вычисленным md5 загруженного файла.
Я хотел бы знать, существует ли программный способ использования boto для захвата значения хеша md5 файла S3, как указано в метаданных.
from boto.s3.connection import S3Connection
conn = S3Connection(access_key, secret_key)
bucket=conn.get_bucket("test-bucket")
rs_keys = bucket.get_all_keys()
for key_val in rs_keys:
print key_val, key_val.**HOW_TO_GET_MD5_FROM_METADATA(?)**
Пожалуйста, исправьте, если мое понимание неверно. Я ищу способ, чтобы захватить данные заголовка программно
Спасибо за предложение. Значение Etag, похоже, не совпадает с контрольной суммой Computed MD5. Я также видел в упомянутых сообщениях, что etag не является подходящим значением MD5. «x-amz-meta-md5» является ключом в моем браузере файлов S3, который дает мне значение MD5. Но этот ключ недоступен в метаданных или заголовках контента, которые должны быть получены программно. – user1652054
Атрибут '' etag'' будет иметь форму '' "797cc49509a9df16481fac4fae144e0a" '', тогда как атрибут '' md5'' будет '' 797cc49509a9df16481fac4fae144e0a''. Обратите внимание на заключенные двойные кавычки в '' etag''. Это необходимо учитывать при сравнении значений. Ключ '' x-amz-meta-md5'' не является стандартным значением метаданных S3, а является обычным. Возможно, это было добавлено в браузер S3 File? – garnaat
Еще один комментарий. Я просмотрел исходный код boto и подтвердил, что boto автоматически проверяет значение заголовка '' etag'' с вычисленным '' md5'' при загрузке файла. Он будет вызывать исключение 'S3DataError'', если они не совпадают. – garnaat