Poleconych postów Amazon S3 & Checksum, How to encode md5 sum into base64 in BASHJak programowo uzyskać MD5 pliku Amazon S3 przy użyciu boto
muszę pobrać plik tar z S3 wiadra z ograniczonym dostępem. [Głównie uprawnienia dostępu podano jedynie pobrać]
Po ściągnięciu muszę sprawdzić sumę kontrolną MD5 pobranego pliku przeciwko MD5-Check Sum danych występujących w postaci metadanych w S3
I obecnie używać S3 przeglądarka plików, aby ręcznie zanotować "x-amz-meta-md5" nagłówka treści i sprawdzić poprawność tej wartości w stosunku do obliczonego md5 pobranego pliku.
Chciałbym wiedzieć, czy istnieje sposób programistycznego użycia boto do przechwytywania wartości mieszania md5 pliku S3, jak wspomniano jako metadane.
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(?)**
Proszę poprawić, jeśli moje zrozumienie jest błędne. Szukam sposobu na pozyskiwanie danych nagłówka programowo
Dzięki za sugestię. Wartość Etag wydaje się nie zgadzać z sumą kontrolną MD5. Widziałam również w wymienionych postach, że etag nie jest odpowiednią wartością MD5. "x-amz-meta-md5" jest kluczem w mojej przeglądarce plików S3, która daje mi wartość MD5. Ale ten klucz nie jest dostępny w programach metadanych lub nagłówków treści. – user1652054
Atrybut '' etag'' będzie miał postać '' '797cc49509a9df16481fac4fae144e0a" '' podczas gdy atrybut '' md5'' będzie '' 797cc49509a9df16481fac4fae144e0a''. Zwróć uwagę na otaczające podwójne cudzysłowy w '' etag''. Musisz wziąć to pod uwagę przy porównywaniu wartości. Klucz '' x-amz-meta-md5'' nie jest standardową wartością metadanych S3, ale niestandardową. Być może zostało to dodane przez przeglądarkę plików S3? – garnaat
Jeszcze jeden komentarz. Sprawdziłem kod źródłowy boto i potwierdziłem, że boto automatycznie sprawdza wartość nagłówka 'etag'' z obliczonym' 'md5'' podczas pobierania pliku. Podniesie wyjątek '' S3DataError'', jeśli nie pasuje. – garnaat