Come posso verificare l'integrità di un oggetto caricato in Amazon S3?
Desidero caricare un oggetto in un bucket Amazon Simple Storage Service (Amazon S3). Inoltre, desidero verificare l'integrità dell'oggetto caricato.
Risoluzione
Nel caso dei bucket per uso generico, utilizza l'intestazione Content-MD5 per verificare l'integrità degli oggetti caricati. Nel caso dei bucket di directory, utilizza un algoritmo di checksum supportato per verificare l'integrità degli oggetti caricati.
Nota: Amazon S3 non supporta i controlli dell'integrità con Content-MD5 quando utilizzi l'operazione PutObject in bucket di directory. Amazon S3 inoltre non supporta i controlli dell'integrità per bucket vettoriali o di tabelle.
Bucket per uso generico
Nel caso dei bucket per uso generico, calcola il valore Content-MD5 dell'oggetto.
Nota: quando utilizzi l'intestazione Content-MD5, Amazon S3 verifica l'oggetto rispetto al valore Content-MD5 fornito. Se i valori non corrispondono, ricevi un errore.
Sistema operativo Windows
Se utilizzi un sistema operativo Windows, puoi utilizzare il cmdlet Get-FileHash di Microsoft PowerShell Utility per calcolare un digest MD5.
-
Il comando seguente ottiene un digest MD5:
Get-FileHash \path\to\file -algorithm MD5 | Format-ListNota: sostituisci**\path\to\file** con il percorso del tuo oggetto.
Nota: il cmdlet Get-FileHash è disponibile con Microsoft PowerShell Utility versione 4.0 e successive.
Ecco un esempio di output:
Algorithm : MD5Hash : C9A5A6878D97B48CC965C1E41859F034 Path : \path\to\file -
Applica la codifica base64 al valore MD5Hash 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 questo comando OpenSSL per ottenere il valore Content-MD5 del file:
openssl md5 -binary path/to/file | base64
Nota: sostituisci path/to/file con il percorso del tuo oggetto.
Bucket di directory
Verifica l'integrità degli oggetti caricati nei bucket di directory con un algoritmo di checksum supportato diverso da MD5. Ad esempio, utilizza i seguenti passaggi per verificare l'integrità degli oggetti caricati con l'intestazione x-amz-checksum-sha256 header (SHA256).
Nota: quando utilizzi l'intestazione x-amz-checksum-sha256, Amazon S3 verifica l'oggetto rispetto al valore x-amz-checksum-sha256 fornito. Se i valori non corrispondono, ricevi un errore.
Sistema operativo Windows
Se utilizzi un sistema operativo Windows, puoi utilizzare il cmdlet Get-FileHash di Microsoft PowerShell Utility per calcolare un digest SHA256.
-
Il comando seguente ottiene un digest SHA256:
Get-FileHash \path\to\file -algorithm SHA256 | Format-ListNota: sostituisci**\path\to\file** con il percorso del tuo oggetto.
Ecco un esempio di output:
Algorithm : SHA256 Hash : E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855 Path : \path\to\file -
Applica la codifica base64 al digest SHA256 calcolato per ottenere il valore SHA256 richiesto:
hashString ='E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855' hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '') ContentSHA256 = [System.Convert]::ToBase64String($hashByteArray) Echo ContentSHA256 `47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=`In questo esempio, l'output di Echo ContentSHA256, 47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=, è il valore SHA256 richiesto.
Sistema operativo Linux
Se utilizzi un sistema operativo Linux, esegui questo comando OpenSSL per ottenere il valore SHA256 del file:
openssl sha256 -binary path/to/file | base64
Nota: sostituisci path/to/file con il percorso del tuo oggetto.
Verifica l'integrità dell'oggetto caricato
Quando utilizzi PutObject per caricare oggetti in Amazon S3, passa il valore Content-MD5 come intestazione della richiesta nel caso dei bucket per uso generico.
Nel caso dei bucket di directory, passa invece un valore x-amz-checksum-sha256 e un'intestazione x-amz-checksum-algorithm impostata su SHA256 come intestazioni della richiesta. Amazon S3 verifica l'oggetto rispetto al valore Content-MD5/SHA256 fornito. Se i valori non corrispondono, ricevi un errore. Puoi anche utilizzare l'intestazione della richiesta SHA256 con l'API Amazon S3 UploadPart.
Informazioni correlate
Common request headers (Intestazioni della richiesta comuni)
Error responses (Risposte di errore)
- Argomenti
- Storage
- Lingua
- Italiano
