Come posso verificare l'integrità di un oggetto caricato su Amazon S3?

2 minuti di lettura
0

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

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa