Je souhaite charger un objet dans un compartiment Amazon Simple Storage Service (Amazon S3). En outre, je souhaite vérifier l'intégrité de l'objet chargé.
Brève description
Suivez les étapes ci-dessous pour vérifier l'intégrité des objets chargés à l'aide de l'en-tête Content-MD5.
Remarque : Lorsque vous utilisez l'en-tête Content-MD5, Amazon S3 compare l'objet à la valeur Content-MD5 fournie. Si les valeurs ne correspondent pas, vous recevez un message d'erreur.
Résolution
Calculer la valeur Content-MD5 de l'objet
Système d’exploitation Windows
Si vous utilisez un système d’exploitation Windows, vous pouvez utiliser la commande cmdlet Get-FileHash de Microsoft PowerShell Utility pour calculer la valeur de hachage MD5, comme suit :
Get-FileHash \path\to\file -algorithm MD5 | Format-List
Remarque : La commande cmdlet Get-FileHash est disponible avec Microsoft PowerShell Utility version 4.0 et versions ultérieures.
Voici un exemple de sortie :
Algorithm : MD5
Hash : C9A5A6878D97B48CC965C1E41859F034
Path : \path\to\file
Puis, appliquez le codage base64 à la valeur de hachage MD5 calculée 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 de 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 chargé
Lorsque vous utilisez PutObject pour charger des objets vers Amazon S3, transmettez la valeur Content-MD5 en tant qu'en-tête de requête. Amazon S3 compare l'objet à la valeur Content-MD5 fournie. Si les valeurs ne correspondent pas, vous recevez un message d'erreur.
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ête courants
Réponses d’erreur S3