Comment vérifier l'intégrité d'un objet téléchargé sur Amazon S3 ?

Date de la dernière mise à jour : 10/08/2021

Je souhaite télécharger 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

Important : Microsoft File Checksum Integrity Verifier (FCIV) est un utilitaire de ligne de commande non pris en charge qui calcule les hachages cryptographiques MD5 pour les fichiers. FCIV fonctionne sous Windows 2000, Windows XP et Windows Server 2003.

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.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?