Desidero caricare un oggetto su un bucket Amazon Simple Storage Service (Amazon S3). Inoltre, voglio verificare l'integrità dell'oggetto caricato. Come posso farlo?
Breve descrizione
Segui questi passaggi per verificare l'integrità degli oggetti caricati utilizzando l'intestazione content-MD5:
Nota: Quando si utilizza l'intestazione Content-MD5, Amazon S3 verifica l'oggetto rispetto al valore Content-MD5 fornito. Se i valori non corrispondono, viene visualizzato un errore.
1.Calcola il valore content-MD5 dell'oggetto.
2.Verifica l'integrità dell'oggetto caricato passando il valore content-MD5 come intestazione della richiesta durante il caricamento dell'oggetto.
Risoluzione
Calcola il valore content-MD5 dell'oggetto
Sistema operativo Windows
Se si utilizza un sistema operativo Windows, è possibile utilizzare il cmdlet Get-FileHash da Microsoft PowerShell Utility per calcolare il digest MD5, in questo modo:
Get-FileHash \path\to\file -algorithm MD5 | Format-List
Nota: Il cmdlet Get-FileHash è disponibile con Microsoft PowerShell Utility versione 4.0 e successive.
Ecco un esempio di output:
Algorithm : MD5
Hash : C9A5A6878D97B48CC965C1E41859F034
Path : \path\to\file
Quindi, applica la codifica base64 al digest MD5 calcolato per ottenere il valore content-MD5 richiesto:
$hashString ='C9A5A6878D97B48CC965C1E41859F034'
$hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '')
$ContentMD5 = [System.Convert]::ToBase64String($hashByteArray)
Echo $ContentMD5
yaWmh42XtIzJZcHkGFnwNA==
In questo esempio, l'output di Echo $ContentMD5, ("yaWmh42XtIzJZcHkGFnwNA=="), è il valore content-MD5 richiesto.
Sistema operativo Linux
Se utilizzi un sistema operativo Linux, esegui il seguente comando OpenSSL per ottenere il valore content-MD5 del tuo file:
openssl md5 -binary PATH/TO/FILE | base64
Verifica l'integrità dell'oggetto caricato
Quando usi PutObject per caricare oggetti su Amazon S3, trasmetti il valore content-MD5 come intestazione della richiesta. Amazon S3 verifica l'oggetto rispetto al valore Content-MD5 fornito. Se i valori non corrispondono, viene visualizzato un errore.
L'intestazione della richiesta Content-MD5 può essere utilizzata anche con l'API S3 UploadPart.
Informazioni correlate
Intestazioni di richiesta comuni
Risposte agli errori S3