Messaggi referiti: Amazon S3 & Checksum, How to encode md5 sum into base64 in BASHCome ottenere la programmazione MD5 Checksum dei file di Amazon S3 utilizzando Boto
devo scaricare un file tar da S3 secchio con accesso limitato. [Per lo più autorizzazioni di accesso dati solo per scaricare]
Dopo scaricare devo controllare la checksum MD5 del file scaricato contro l'MD5-Check somma dei dati presenti come metadati in S3
Io attualmente uso un Browser di file S3 per annotare manualmente "x-amz-meta-md5" dell'intestazione del contenuto e convalidare tale valore rispetto all'md5 calcolato del file scaricato.
Vorrei sapere se esiste un modo programmatico con boto per acquisire il valore hash md5 di un file S3 come menzionato come metadati.
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(?)**
Si prega di correggere se la mia comprensione è sbagliato. Sto cercando un modo per catturare i dati di intestazione di programmazione
Grazie per il suggerimento. Il valore Etag sembra non corrispondere alla somma di controllo MD5 calcolata. Ho anche visto nei post di riferimento che etag non è un valore appropriato di MD5. "x-amz-meta-md5" è la chiave del mio browser S3 File che mi dà il valore MD5. Tuttavia, questa chiave non è disponibile in metadati o intestazioni di contenuto da ottenere in modo programmatico. – user1652054
L'attributo '' etag'' sarà nella forma '' "797cc49509a9df16481fac4fae144e0a" '' mentre l'attributo '' md5'' sarà '' 797cc49509a9df16481fac4fae144e0a''. Notare le doppie virgolette racchiuse in '' etag''. È necessario tenerne conto quando si confrontano i valori. La chiave '' x-amz-meta-md5'' non è un valore di metadati S3 standard ma uno personalizzato. Forse è stato aggiunto dal browser S3 File? – garnaat
Un altro commento. Ho rivisto il codice sorgente di boto e ho confermato che boto controlla automaticamente il valore dell'intestazione '' etag'' con il '' md5'' calcolato durante il download di un file. Solleverà l'eccezione '' S3DataError'' se non corrispondono. – garnaat