Desidero caricare un oggetto su un bucket Amazon Simple Storage Service (Amazon S3). Inoltre, desidero verificare l'integrità dell'oggetto caricato.
Breve descrizione
Utilizza i passaggi seguenti 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.
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