Je souhaite télécharger un objet dans un compartiment Amazon Simple Storage Service (Amazon S3). Je souhaite également vérifier l'intégrité de l'objet téléchargé à l'aide de la valeur du total de contrôle MD5. Quelle est la marche à suivre ?

Important : Cette résolution vérifie l'intégrité des objets à l'aide de l'en-tête Content-MD5. Si votre téléchargement est signé avec AWS Signature Version 4, vous devez utiliser l'en-tête x-amz-content-sha256 à la place. Pour plus d'informations, consultez les informations relatives à la validation des totaux de contrôle par l'interface de ligne de commande AWS.

Obtention de la valeur du total de contrôle MD5 codé en base64 de l'objet

Si vous utilisez un système d'exploitation Windows, procédez comme suit :

1.    Installez l'utilitaire FCIV (File Checksum Integrity Verifier).

2.    Exécutez l'utilitaire FCIV à l'aide de la commande suivante :

fciv.exe c:\S3\testfile

3.    La réponse contient le format hexadécimal de la valeur du total de contrôle, comme suit :

fciv C:\Windows\explorer.exe
                //
                // File Checksum Integrity Verifier version 2.05.
                //
                example111aaa222bbb33cc44dd5e6f7 c:\\windows\\explorer.exe

4.    Convertissez la valeur du total de contrôle MD5 hexadécimal dans son format codé en base64. Pour plus d'informations sur la manière d'obtenir le format codé en base64, consultez Database storage format avec l'utilitaire FCIV.

S vous utilisez un système d'exploitation Linux, exécutez cette commande Open SSL :

openssl md5 -binary PATH/TO/FILE | base64

La réponse contient la valeur du total de contrôle MD5 codé en base64, comme suit :

user@example:/home$ openssl md5 -binary /bin/bash | base64
                examplemd5value1234567==

Vérification de l'intégrité des objets pendant le téléchargement

Pour vérifier la valeur du total de contrôle MD5 de l'objet au cours de son téléchargement sur Amazon S3, utilisez la commande de l'interface de ligne de commande AWS (AWS CLI) aws s3api put-object et incluez l'option --content-md5. Pour la valeur de --content-md5, entrez la valeur du total de contrôle codé en base64 que vous avez calculée, comme suit :

aws s3api put-object --bucket examplebucket --key exampleobject.txt --body exampleobjectpath --content-md5 examplemd5value1234567==

Si vous souhaitez stocker la valeur du total de contrôle MD5 en tant que métadonnée (en-tête HTTP personnalisé), vous pouvez également ajouter l'option --metadata dans la commande, comme suit :

aws s3api put-object --bucket examplebucket --key exampleobject.txt --body exampleobjectpath --content-md5 examplemd5value1234567== --metadata md5checksum=examplemd5value1234567==

Si le total de contrôle calculé par Amazon S3 lors du téléchargement ne correspond pas à la valeur que vous avez entrée pour --content-md5, Amazon S3 ne stocke pas l'objet. En revanche, vous recevez un message d'erreur en réponse. Pour plus d'informations, consultez les informations relatives à la validation des totaux de contrôle par l'interface de ligne de commande AWS.


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 01/04/2016

Date de mise à jour : 19/12/2018