2011-12-23 2 views
13

Je tente de vérifier l'intégrité d'un fichier téléchargé dans un compartiment mais je ne trouve aucune information à ce sujet.Amazon S3 & Checksum

Dans les en-têtes du fichier, il y a un "E-tag" mais je pense que ce n'est pas une somme de contrôle md5. Alors, comment puis-je vérifier si le fichier que j'ai téléchargé sur Amazon S3 est le même que celui que j'ai sur mon ordinateur?

Merci. :)

+0

Assez couvert dans http://stackoverflow.com/questions/1775816/how-to-get-the-md5sum-of-a-file-on-amazons-s3, bien que la réponse de @ svetianov soit un peu plus complète . –

Répondre

22

Si vous utilisez l'API REST pour charger un objet (jusqu'à 5 Go) en une seule opération, vous pouvez ajouter l'en-tête Content-MD5 dans votre PUT demande. Selon la documentation S3 pour la PUT, le Content-MD5 en-tête est:

Le codé en base64 128 bits MD5 condensé du message (sans les en-têtes) selon RFC 1864. Cet en-tête peut être utilisé comme une vérification d'intégrité de message pour vérifier que les données sont les mêmes que celles qui ont été envoyées à l'origine. Bien que cela soit facultatif, nous vous recommandons d'utiliser le mécanisme Content-MD5 comme vérification d'intégrité de bout en bout.

Vérifiez this answer sur la façon de calculer un condensé MD5 128 bits codé en base64. Si vous utilisez s3curl, vous pouvez inclure le condensé calculé dans vos en-têtes de demande à l'aide de l'option --contentMd5. Si le résumé md5 calculé par Amazon à la fin du téléchargement ne correspond pas au condensé md5 fourni dans l'en-tête Content-MD5, Amazon répondra avec un code d'erreur BadDigest.

Si vous utilisez le chargement partitionné, l'en-tête Content-MD5 sert de contrôle d'intégrité pour chaque pièce individuellement. Une fois le chargement partitionné finalisé, Amazon ne fournit pas actuellement un moyen de vérifier l'intégrité du fichier assemblé.

+0

Merci beaucoup! :) – Florent

+0

j'ai développé une application iphone pour télécharger des vidéos à amazon, et je ai encodé le fichier en base64 encodé 128 bits MD5, lors de l'achèvement de téléchargement de fichier je reçois "ErrorCode: BadDigest, Message: Le Content-MD5 que vous avez spécifié ne correspond pas nous avons reçu." est-ce que cela signifie que je ne peux pas faire correspondre les valeurs de md5 avec mon pohone et mon serveur s3? –