Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vérification de l'intégrité des objets
Amazon S3 utilise des valeurs de total de contrôle pour vérifier l'intégrité des données que vous chargez ou téléchargez depuis Amazon S3. En outre, vous pouvez demander qu'un autre total de contrôle soit calculé pour tout objet que vous stockez dans Amazon S3. Vous pouvez choisir parmi plusieurs algorithmes de total de contrôle à utiliser lorsque vous chargez ou copiez vos données. Amazon S3 utilise cet algorithme pour calculer un total de contrôle supplémentaire et le stocker dans les métadonnées de l'objet. Pour en savoir plus sur l'utilisation de totaux de contrôle supplémentaires pour vérifier l'intégrité des données, consultez Tutoriel : vérifier l'intégrité des données dans Amazon S3 avec des totaux de contrôle supplémentaires
Lorsque vous chargez un objet, vous pouvez éventuellement inclure un total de contrôle précalculé dans votre requête. Amazon S3 compare le total de contrôle fourni au total de contrôle qu'il calcule en utilisant l'algorithme que vous avez spécifié. Si les deux valeurs ne correspondent pas, Amazon S3 génère une erreur.
Utilisation des algorithmes de total de contrôle pris en charge
Amazon S3 vous offre la possibilité de sélectionner l'algorithme de total de contrôle utilisé pour valider vos données pendant le chargement ou le téléchargement. Vous pouvez sélectionner l'un des algorithmes de hachage sécurisé (SHA) ou de contrôle de redondance cyclique () suivants pour vérifier l'intégrité des données CRC :
-
CRC32
-
CRC32C
-
SHA-1
-
SHA-256
Lorsque vous chargez un objet, vous pouvez spécifier l'algorithme que vous souhaitez utiliser :
-
Lorsque vous utilisez le AWS Management Console, vous sélectionnez l'algorithme de somme de contrôle que vous souhaitez utiliser. Dans ce cas, vous pouvez éventuellement spécifier la valeur du total de contrôle de l'objet. Lorsque Amazon S3 reçoit l'objet, il calcule le total de contrôle en utilisant l'algorithme que vous avez spécifié. Si les deux valeurs ne correspondent pas, Amazon S3 génère une erreur.
-
Lorsque vous utilisez un SDK, vous pouvez définir la valeur du
ChecksumAlgorithm
paramètre selon l'algorithme que vous souhaitez qu'Amazon S3 utilise lors du calcul de la somme de contrôle. Amazon S3 calcule automatiquement la valeur du total de contrôle. -
Lorsque vous utilisez le REST API, vous n'utilisez pas le
x-amz-sdk-checksum-algorithm
paramètre. Vous devez plutôt utiliser l'un des en-têtes spécifiques à l'algorithme (par exemple,x-amz-checksum-crc32
).
Pour en savoir plus sur le chargement d'objets, consultez Chargement d'objets.
Pour appliquer l'une de ces valeurs de total de contrôle à des objets déjà chargés sur Amazon S3, vous pouvez copier l'objet. Lorsque vous copiez un objet, vous pouvez préciser si vous souhaitez utiliser l'algorithme de total de contrôle existant ou en utiliser un nouveau. Vous pouvez spécifier un algorithme de total de contrôle lors de l'utilisation de tout mécanisme pris en charge pour la copie d'objets, y compris les opérations par lots S3. Pour plus d’informations sur les opérations par lots S3, consultez Exécution des opérations par lot à grande échelle sur des objets Amazon S3.
Important
Si vous utilisez un chargement partitionné avec des totaux de contrôle supplémentaires, les numéros de partie partitionnés doivent utiliser des numéros de parties consécutifs. Lorsque vous utilisez des checksums supplémentaires, si vous essayez de traiter une demande de téléchargement partitionné avec des numéros de pièce non consécutifs, Amazon S3 génère une erreur. HTTP 500 Internal Server Error
Après avoir chargé des objets, vous pouvez obtenir la valeur du total de contrôle et la comparer à une valeur de total de contrôle précalculée ou précédemment stockée, calculée à l'aide du même algorithme.
Pour en savoir plus sur l'utilisation de la console et la définition des algorithmes de somme de contrôle à utiliser lors du chargement d'objets, consultez Chargement d'objets et Didacticiel : Vérification de l'intégrité des données dans Amazon S3 avec des sommes de contrôle supplémentaires
L'exemple suivant montre comment vous pouvez utiliser le AWS SDKs pour charger un fichier volumineux avec un chargement en plusieurs parties, télécharger un fichier volumineux et valider un fichier en plusieurs parties, le tout en utilisant SHA -256 pour la validation du fichier.
Vous pouvez envoyer des REST demandes pour télécharger un objet avec une valeur de somme de contrôle afin de vérifier l'intégrité des PutObjectdonnées. Vous pouvez également récupérer la valeur de la somme de contrôle pour les objets à l'aide de GetObjectou HeadObject.
Vous pouvez envoyer une demande PUT
pour télécharger un objet d'une taille maximale de 5 Go en une seule opération. Pour plus d'informations, reportez-vous à la section PutObject
dans la référence des commandes AWS CLI . Vous pouvez également utiliser get-object
et head-object
pour récupérer le total de contrôle d'un objet déjà chargé afin de vérifier l'intégrité des données.
Pour plus d'informations, consultez Amazon S3 CLI FAQ dans le guide de AWS Command Line Interface l'utilisateur.
Utilisation de Content- MD5 lors du téléchargement d'objets
Une autre façon de vérifier l'intégrité de votre objet après le téléchargement consiste à fournir un MD5 résumé de l'objet lorsque vous le chargez. Si vous calculez le MD5 résumé de votre objet, vous pouvez le fournir avec la PUT
commande en utilisant l'Content-MD5
en-tête.
Après avoir chargé l'objet, Amazon S3 calcule le MD5 résumé de l'objet et le compare à la valeur que vous avez fournie. La requête n'aboutit que si les deux récapitulatifs correspondent.
Il n'est pas nécessaire de fournir un MD5 résumé, mais vous pouvez l'utiliser pour vérifier l'intégrité de l'objet dans le cadre du processus de téléchargement.
Utilisation du contenu MD5 et du ETag pour vérifier les objets téléchargés
La balise d'entité (ETag) d'un objet représente une version spécifique de cet objet. N'oubliez pas que cela ETag reflète uniquement les modifications apportées au contenu d'un objet, et non à ses métadonnées. Si seules les métadonnées d'un objet changent, elles ETag restent les mêmes.
Selon l'objet, ETag l'objet peut être un MD5 condensé des données de l'objet :
-
Si un objet est créé par l'
CopyObject
opérationPutObject
PostObject
, ou par le biais de AWS Management Console, et que cet objet est également en texte brut ou chiffré par chiffrement côté serveur avec des clés gérées Amazon S3 (SSE-S3), cet objet possède un MD5 condensé de ETag ses données d'objet. -
Si un objet est créé par l'
CopyObject
opérationPutObject
PostObject
, ou par le biais de AWS Management Console, et que cet objet est chiffré par chiffrement côté serveur avec des clés fournies par le client (SSE-C) ou par chiffrement côté serveur avec des clés () AWS Key Management Service (SSE-AWS KMS KMS), cet objet possède un code qui n'est pas un ETag condensé de ses données d'objet. MD5 -
Si un objet est créé par l'
Part Copy
opérationMultipart Upload
ou, il ne ETag s'agit pas d'un MD5 condensé, quelle que soit la méthode de chiffrement utilisée. Si la taille d'un objet est supérieure à 16 Mo, il AWS Management Console télécharge ou copie cet objet sous forme de téléchargement partitionné ; il ne s'agit donc ETag pas d'un MD5 résumé.
Pour les objets dont le résumé ETag est le Content-MD5
condensé de l'objet, vous pouvez comparer la ETag valeur de l'objet avec un Content-MD5
résumé calculé ou enregistré précédemment.
Utilisation des totaux de contrôle de fin
Lorsque vous chargez des objets sur Amazon S3, vous pouvez soit fournir une somme de contrôle précalculée pour l'objet, soit utiliser an pour créer automatiquement des sommes de contrôle AWS SDK de suivi en votre nom. Si vous décidez d'utiliser un total de contrôle de fin, Amazon S3 génère automatiquement le total de contrôle en utilisant l'algorithme que vous avez spécifié et l'utilise pour valider l'intégrité de l'objet pendant le chargement.
Pour créer une somme de contrôle finale lorsque vous utilisez un AWS SDK, renseignez le ChecksumAlgorithm
paramètre avec votre algorithme préféré. Il SDK utilise cet algorithme pour calculer la somme de contrôle pour votre objet (ou des parties de l'objet) et l'ajoute automatiquement à la fin de votre demande de téléchargement. Ce comportement vous fait gagner du temps car Amazon S3 effectue la vérification et le chargement de vos données en une seule opération.
Important
Si vous utilisez S3 Object Lambda, toutes les requêtes adressées à S3 Object Lambda sont signées en utilisant s3-object-lambda
au lieu de s3
. Ce comportement affecte la signature des valeurs de total de contrôle de fin. Pour en savoir plus sur S3 Object Lambda, consultez Transformation d'objets avec S3 Object Lambda.
Utilisation de totaux de contrôle au niveau des parties pour les chargements partitionnés
Lorsque des objets sont chargés sur Amazon S3, ils peuvent être chargés en tant qu'objet unique ou par le biais du processus de chargement partitionné. Les objets dont la taille est supérieure à 16 Mo et qui sont chargés par le biais de la console sont automatiquement chargés à l'aide de chargements partitionnés. Pour en savoir plus sur le chargement partitionné, consultez Chargement et copie d'objets à l'aide d'un chargement partitionné.
Lorsqu'un objet est chargé en plusieurs parties, le résumé de l'ETagobjet n'est pas un MD5 condensé de l'objet dans son intégralité. Amazon S3 calcule le MD5 résumé de chaque partie individuelle au fur et à mesure de son chargement. Les MD5 résumés sont utilisés pour déterminer l'ETagobjet final. Amazon S3 concatène les octets des MD5 résumés, puis calcule le MD5 condensé de ces valeurs concaténées. La dernière étape pour créer le ETag est quand Amazon S3 ajoute un tiret avec le nombre total de pièces à la fin.
Par exemple, considérez un objet chargé avec un téléchargement en plusieurs parties dont le nom est ETag deC9A5A6878D97B48CC965C1E41859F034-14
. Dans ce cas, le MD5 condensé de tous les résumés C9A5A6878D97B48CC965C1E41859F034
est-il concaténé ensemble ? -14
indique que 14 parties sont associées au chargement partitionné de cet objet.
Si vous avez activé des valeurs de contrôle supplémentaires pour votre objet en plusieurs parties, Amazon S3 calcule le total de contrôle pour chaque partie individuelle en utilisant l'algorithme de total de contrôle spécifié. La somme de contrôle pour l'objet terminé est calculée de la même manière qu'Amazon S3 calcule le MD5 résumé du téléchargement partitionné. Vous pouvez utiliser ce total de contrôle pour vérifier l'intégrité de l'objet.
Pour récupérer des informations sur l'objet, notamment le nombre de parties composant l'objet entier, vous pouvez utiliser cette GetObjectAttributesopération. Avec des totaux de contrôle supplémentaires, vous pouvez également récupérer des informations pour chaque partie individuelle qui incluent la valeur du total de contrôle de chaque partie.
Pour les téléchargements terminés, vous pouvez obtenir la somme de contrôle d'une partie individuelle en utilisant les HeadObjectopérations GetObjector et en spécifiant un numéro de pièce ou une plage d'octets alignée sur une seule partie. Si vous souhaitez récupérer les valeurs de contrôle pour les différentes parties des téléchargements partitionnés toujours en cours, vous pouvez utiliser. ListParts
En raison de la façon dont Amazon S3 calcule le total de contrôle pour les objets à plusieurs parties, la valeur du total de contrôle de l'objet peut changer si vous le copiez. Si vous utilisez un SDK ou le REST API et que vous appelez CopyObject, Amazon S3 copie n'importe quel objet dans les limites de taille de l'CopyObject
APIopération. Amazon S3 effectue cette copie en une seule action, que l'objet ait été chargé en une seule requête ou dans le cadre d'un chargement partitionné. Avec une commande de copie, le total de contrôle de l'objet est un total de contrôle direct de l'objet complet. Si l'objet a été initialement chargé à l'aide d'un chargement partitionné, la valeur du total de contrôle change même si les données ne changent pas.
Note
Les objets dont la taille dépasse les limites de taille de l'CopyObject
APIopération doivent utiliser des commandes de copie en plusieurs parties.
Important
Lorsque vous effectuez certaines opérations à l'aide du AWS Management Console, Amazon S3 utilise un téléchargement partitionné si la taille de l'objet est supérieure à 16 Mo. Dans ce cas, le total de contrôle n'est pas un total de contrôle direct de l'objet complet, mais plutôt un calcul basé sur les valeurs de total de contrôle de chaque partie individuelle.
Par exemple, considérez un objet de 100 Mo que vous avez chargé en tant que téléchargement direct en une seule partie à l'aide du RESTAPI. Dans ce cas, le total de contrôle est un total de contrôle de l'objet entier. Si vous utilisez ensuite la console pour renommer cet objet, le copier, changer sa classe de stockage ou modifier les métadonnées, Amazon S3 utilise la fonctionnalité de chargement partitionné pour mettre à jour l'objet. Par conséquent, Amazon S3 crée une nouvelle valeur de total de contrôle pour l'objet qui est calculée sur la base des valeurs de total de contrôle des parties individuelles.
La liste précédente des opérations de console n'est pas une liste complète de toutes les actions possibles que vous pouvez entreprendre pour AWS Management Console qu'Amazon S3 mette à jour l'objet à l'aide de la fonctionnalité de téléchargement partitionné. Gardez à l'esprit que lorsque vous utilisez la console pour agir sur des objets d'une taille supérieure à 16 Mo, la valeur du total de contrôle peut ne pas correspondre au total de contrôle de l'objet entier.