Comment vérifier l'intégrité d'un objet transféré sur Amazon S3 ?

Lecture de 2 minute(s)
0

Je souhaite transférer un objet dans un compartiment Amazon Simple Storage Service (Amazon S3). Je souhaite aussi vérifier l'intégrité de cet objet. Comment procéder ?

Brève description

Suivez ces étapes pour vérifier l'intégrité des objets téléchargés à l'aide de l'en-tête Content-MD5 :

Remarque : lorsque vous utilisez l'en-tête Content-MD5, Amazon S3 vérifie l'objet par rapport à la valeur Content-MD5 fournie. Si les valeurs ne correspondent pas, une erreur s'affiche.

1.    Calculez la valeur Content-MD5 de l'objet.

2.    Vérifiez l'intégrité de l'objet téléchargé en transmettant la valeur Content-MD5 en tant qu'en-tête de requête pendant le téléchargement de l'objet.

Résolution

Calculer la valeur Content-MD5 de l'objet

Système d'exploitation Windows

Si vous employez un système d'exploitation Windows, vous pouvez utiliser l'applet de commande Get-FileHash de Microsoft PowerShell Utility pour calculer le digest MD5, comme suit :

Get-FileHash \path\to\file -algorithm MD5 | Format-List

Remarque : L'applet de commande Get-FileHash est disponible avec Microsoft PowerShell Utility 4.0 et les versions ultérieures.

Voici un exemple de sortie :

Algorithm : MD5
Hash      : C9A5A6878D97B48CC965C1E41859F034
Path      : \path\to\file

Ensuite, appliquez l'encodage base64 au digest MD5 calculé pour obtenir la valeur Content-MD5 requise :

$hashString ='C9A5A6878D97B48CC965C1E41859F034'
$hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '')
$ContentMD5 = [System.Convert]::ToBase64String($hashByteArray)
Echo $ContentMD5
yaWmh42XtIzJZcHkGFnwNA==

Dans cet exemple, la sortie d'Echo $ContentMD5, ("yaWmh42XtIzJZcHkGFnwNA=="), est la valeur Content-MD5 requise.

Système d'exploitation Linux

Si vous utilisez un système d'exploitation Linux, exécutez la commande OpenSSL suivante pour obtenir la valeur Content-MD5 de votre fichier :

openssl md5 -binary PATH/TO/FILE | base64

Vérifier l'intégrité de l'objet téléchargé

Lorsque vous utilisez PutObject pour télécharger des objets sur Amazon S3, transmettez la valeur Content-MD5 en tant qu'en-tête de requête. Amazon S3 vérifie l'objet par rapport à la valeur Content-MD5 fournie. Si les valeurs ne correspondent pas, une erreur s'affiche.

L'en-tête de requête Content-MD5 peut également être utilisé avec l'API S3 UploadPart.


Informations connexes

En-têtes de requêtes courants

Réponses d'erreurs S3

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans