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