Utilisation des totaux de contrôle de contrôle de contrôle - CodeArtifact

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.

Utilisation des totaux de contrôle de contrôle de contrôle

Lorsqu'un artefact Maven est publié dans unAWS CodeArtifact référentiel, la somme de contrôle associée à chaque ressource ou fichier du package est utilisée pour valider le téléchargement. Les fichiers JAR, Pom et War sont des exemples d'actifs. Pour chaque actif, l'artefact Maven contient plusieurs fichiers de somme de contrôle qui utilisent le nom de l'actif avec une extension supplémentaire, telle quemd5 ousha1. Par exemple, les fichiers de somme de contrôle d'un fichier nommémy-maven-package.jar peuvent êtremy-maven-package.jar.md5 etmy-maven-package.jar.sha1.

Note

Maven utilise ce termeartifact. Dans ce guide, un package Maven est identique à un artefact Maven. Pour plus d'informations, reportez-vous à la section AWS CodeArtifactContrôle des totaux

Stockage de la somme de chèques

CodeArtifact ne stocke pas les sommes de contrôle Maven en tant qu'actifs. Cela signifie que les sommes de contrôle n'apparaissent pas comme des actifs individuels dans la sortie de l'ListPackageVersionAssets API. Au lieu de cela, les sommes de contrôle calculées par CodeArtifact sont disponibles pour chaque actif dans tous les types de somme de contrôle pris en charge. Par exemple, une partie de la réponse à l'appel à ListPackageVersionAssets la version du package Mavencommons-lang:commons-lang 2.1 est la suivante :

{ "name": "commons-lang-2.1.jar", "size": 207723, "hashes": { "MD5": "51591549f1662a64543f08a1d4a0cf87", "SHA-1": "4763ecc9d78781c915c07eb03e90572c7ff04205", "SHA-256": "2ded7343dc8e57decd5e6302337139be020fdd885a2935925e8d575975e480b9", "SHA-512": "a312a5e33b17835f2e82e74ab52ab81f0dec01a7e72a2ba58bb76b6a197ffcd2bb410e341ef7b3720f3b595ce49fdd9994ea887ba08ff6fe21b2c714f8c405af" } }, { "name": "commons-lang-2.1.pom", "size": 9928, "hashes": { "MD5": "8e41bacdd69de9373c20326d231c8a5d", "SHA-1": "a34d992202615804c534953aba402de55d8ee47c", "SHA-256": "f1a709cd489f23498a0b6b3dfbfc0d21d4f15904791446dec7f8a58a7da5bd6a", "SHA-512": "1631ce8fe4101b6cde857f5b1db9b29b937f98ba445a60e76cc2b8f2a732ff24d19b91821a052c1b56b73325104e9280382b2520edda4e7696698165c7e09161" } }, { "name": "maven-metadata.xml", "size": 121, "hashes": { "MD5": "11bb3d48d984f2f49cea1e150b6fa371", "SHA-1": "7ef872be17357751ce65cb907834b6c5769998db", "SHA-256": "d04d140362ea8989a824a518439246e7194e719557e8d701831b7f5a8228411c", "SHA-512": "001813a0333ce4b2a47cf44900470bc2265ae65123a8c6b5ac5f2859184608596baa4d8ee0696d0a497755dade0f6bf5e54667215a06ceae1effdfb7a8d30f88" } }

Même si les sommes de contrôle ne sont pas stockées en tant qu'actifs, les clients Maven peuvent toujours publier et télécharger des sommes de contrôle aux emplacements prévus. Par exemple, s'il secommons-lang:commons-lang 2.1 trouvait dans un référentiel appelémaven-repo, le chemin URL de la somme de contrôle SHA-256 du fichier JAR serait :

/maven/maven-repo/commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha256

Si vous chargez des packages Maven existants (par exemple, des packages précédemment stockés dans Amazon S3) à CodeArtifact l'aide d'un client HTTP générique tel quecurl, il n'est pas nécessaire de télécharger les sommes de contrôle. CodeArtifact les générera automatiquement. Si vous souhaitez vérifier que les actifs ont été chargés correctement, vous pouvez utiliser l'opération d' ListPackageVersionAssets API pour comparer les sommes de contrôle figurant dans la réponse aux valeurs de somme de contrôle d'origine pour chaque ressource.

Incohérences de somme de contrôle lors de la publication

Outre les actifs et les sommes de contrôle, les artefacts Maven contiennent également unmaven-metadata.xml fichier. La séquence de publication normale pour un package Maven est que tous les actifs et toutes les sommes de contrôle doivent être téléchargés en premier, puismaven-metadata.xml. Par exemple, la séquence de publication pour la version du package Mavencommons-lang 2.1 décrite précédemment, en supposant que le client ait été configuré pour publier des fichiers de somme de contrôle SHA-256, serait la suivante :

PUT commons-lang-2.1.jar PUT commons-lang-2.1.jar.sha256 PUT commons-lang-2.1.pom PUT commons-lang-2.1.pom.sha256 PUT maven-metadata.xml PUT maven-metadata.xml.sha256

Lorsque vous chargez le fichier de somme de contrôle pour une ressource, telle qu'un fichier JAR, la demande de téléchargement de la somme de contrôle échouera et la réponse 400 (demande incorrecte) s'il existe une différence entre la valeur de somme de contrôle téléchargée et la valeur de somme de contrôle calculée par CodeArtifact. Si la ressource correspondante n'existe pas, la demande échouera avec une réponse 404 (introuvable). Pour éviter cette erreur, vous devez d'abord télécharger la ressource, puis la somme de contrôle.

Lorsmaven-metadata.xml du téléchargement, le statut de la version du package Maven passe CodeArtifact normalement deUnfinished àPublished. Si une incohérence de somme de contrôle est détectée pour un actif, un 400 (demande incorrecte) CodeArtifact sera renvoyé en réponse à la demande demaven-metadata.xml publication. Cette erreur peut empêcher le client de charger les fichiers correspondant à cette version du package. Si cela se produit et que lemaven-metadata.xml fichier n'est pas chargé, aucun élément de la version du package déjà chargée ne peut être téléchargé. Cela est dû au fait que le statut de la version du package n'est pas défini surPublished et resteUnfinished.

CodeArtifact permet d'ajouter des ressources supplémentaires à une version de package Maven même aprèsmaven-metadata.xml le téléchargement et le statut de la version du package défini surPublished. Dans cet état, une demande de téléchargement d'un fichier de somme de contrôle ne correspondant pas échouera également avec une réponse 400 (demande incorrecte). Toutefois, comme le statut de version du package a déjà été défini surPublished, vous pouvez télécharger n'importe quel élément du package, y compris ceux pour lesquels le téléchargement du fichier de somme de contrôle a échoué. Lors du téléchargement d'une somme de contrôle pour une ressource pour laquelle le téléchargement du fichier de somme de contrôle a échoué, la valeur de la somme de contrôle que le client reçoit sera la valeur de la somme de contrôle calculée sur la CodeArtifact base des données de la ressource téléchargées.

CodeArtifact les comparaisons de sommes de contrôle distinguent les majuscules et minuscules, et les sommes de contrôle calculées par CodeArtifact sont formatées en minuscules. Par conséquent, si la somme de contrôle909FA780F76DA393E992A3D2D495F468 est téléchargée, elle échouera en raison d'une différence de somme de contrôle car elle CodeArtifact ne la considère pas comme égale à909fa780f76da393e992a3d2d495f468.

Remédier à une erreur de somme de contrôle

Si le chargement d'une somme de contrôle échoue en raison d'une non-correspondance, essayez l'une des méthodes suivantes pour la récupérer :

  • Exécutez à nouveau la commande qui publie l'artefact Maven. Cela peut fonctionner si un problème réseau a endommagé le fichier de somme de contrôle. Si cela permet de résoudre le problème de réseau, la somme de contrôle correspond et le téléchargement est réussi.

  • Supprimez la version du package, puis republiez-la. Pour plus d'informations, consultez DeletePackageVersionsle manuel AWS CodeArtifact API Reference.