Verwenden von - CodeArtifact

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von

Wenn ein Maven-Artefakt in einemAWS CodeArtifact Repository veröffentlicht wird, wird die Prüfsumme, die jedem Asset oder jeder Datei im Paket zugeordnet ist, verwendet, um den Upload zu validieren. Beispiele für Assets sind Jar, Pom und War Files. Für jedes Asset enthält das Maven-Artefakt mehrere Prüfsummendateien, die den Assetnamen mit einer zusätzlichen Erweiterung verwenden, z. B.md5 odersha1. Die Prüfsummendateien für eine Datei mit dem Namenmy-maven-package.jar könnten beispielsweisemy-maven-package.jar.md5 und lautenmy-maven-package.jar.sha1.

Anmerkung

Maven verwendet den Begriffartifact. In diesem Handbuch ist ein Maven-Paket dasselbe wie ein Maven-Artefakt. Weitere Informationen finden Sie unter AWS CodeArtifactPaket.

Speicherung von Prüfsummen

CodeArtifact speichert Maven-Prüfsummen nicht als Vermögenswerte. Das bedeutet, dass Prüfsummen in der Ausgabe der ListPackageVersionAssets API nicht als einzelne Assets erscheinen. Stattdessen CodeArtifact sind die von berechneten Prüfsummen für jedes Asset in allen unterstützten Prüfsummentypen verfügbar. Ein Teil der Antwort ListPackageVersionAssets auf den Aufruf der Maven-Paketversioncommons-lang:commons-lang 2.1 lautet beispielsweise:

{ "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" } }

Obwohl Prüfsummen nicht als Assets gespeichert werden, können Maven-Kunden dennoch Prüfsummen an den erwarteten Orten veröffentlichen und herunterladen. Wenn es beispielsweise in einemcommons-lang:commons-lang 2.1 aufgerufenen Repository wäremaven-repo, wäre der URL-Pfad für die SHA-256-Prüfsumme der JAR-Datei:

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

Wenn Sie bestehende Maven-Pakete (z. B. Pakete, die zuvor in Amazon S3 gespeichert wurden) hochladen, um einen generischen HTTP-Client wie zu CodeArtifact verwendencurl, ist es nicht erforderlich, die Prüfsummen hochzuladen. CodeArtifact wird sie automatisch generieren. Wenn Sie überprüfen möchten, ob die Assets korrekt hochgeladen wurden, können Sie den ListPackageVersionAssets API-Vorgang verwenden, um die Prüfsummen in der Antwort mit den ursprünglichen Prüfsummenwerten für jedes Asset zu vergleichen.

Die Prüfsummen stimmen beim Veröffentlichen nicht überein

Neben Assets und Prüfsummen enthalten Maven-Artefakte auch einemaven-metadata.xml Datei. Die normale Veröffentlichungsreihenfolge für ein Maven-Paket besteht darin, dass zuerst alle Assets und Prüfsummen hochgeladen werden, gefolgt vonmaven-metadata.xml. Beispielsweise wäre die Veröffentlichungssequenz für die zuvorcommons-lang 2.1 beschriebene Maven-Paketversion, vorausgesetzt, der Client war für die Veröffentlichung von SHA-256-Prüfsummendateien konfiguriert, wie folgt:

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

Beim Hochladen der Prüfsummendatei für ein Asset, z. B. eine JAR-Datei, schlägt die Prüfsummen-Upload-Anfrage mit einer Antwort 400 (Bad Request) fehl, wenn zwischen dem hochgeladenen Prüfsummenwert und dem von berechneten Prüfsummenwert eine Diskrepanz besteht CodeArtifact. Wenn das entsprechende Asset nicht existiert, schlägt die Anfrage mit einer 404-Antwort (Nicht gefunden) fehl. Um diesen Fehler zu vermeiden, müssen Sie zuerst das Asset und dann die Prüfsumme hochladen.

Wennmaven-metadata.xml es hochgeladen wird, ändert sich CodeArtifact normalerweise der Status der Maven-Paketversion vonUnfinished zuPublished. Wenn für ein Asset eine Nichtübereinstimmung der Prüfsummen festgestellt wird, CodeArtifact wird als Antwort auf die maven-metadata.xmlVeröffentlichungsanfrage eine 400 (Bad Request) zurückgegeben. Dieser Fehler kann dazu führen, dass der Client das Hochladen von Dateien für diese Paketversion beendet. Wenn dies der Fall ist und diemaven-metadata.xml Datei nicht hochgeladen wird, können alle Assets der bereits hochgeladenen Paketversion nicht heruntergeladen werden. Dies liegt daran, dass der Status der Paketversion nicht auf gesetzt istPublished und bleibtUnfinished.

CodeArtifact ermöglicht das Hinzufügen weiterer Assets zu einer Maven-Paketversion, auch nachdem diese hochgeladenmaven-metadata.xml wurde und der Status der Paketversion auf gesetzt wurdePublished. In diesem Status schlägt eine Anfrage zum Hochladen einer nicht übereinstimmenden Prüfsummendatei ebenfalls mit einer Antwort 400 (Bad Request) fehl. Da der Status der Paketversion jedoch bereits auf gesetzt wurdePublished, können Sie jedes Asset aus dem Paket herunterladen, einschließlich der Elemente, für die der Upload der Prüfsummendatei fehlgeschlagen ist. Beim Herunterladen einer Prüfsumme für ein Asset, für das der Upload der Prüfsummendatei fehlgeschlagen ist, ist der Prüfsummenwert, den der Client erhält, der Prüfsummenwert, der auf der CodeArtifact Grundlage der hochgeladenen Asset-Daten berechnet wird.

CodeArtifact Bei Prüfsummenvergleichen wird zwischen Groß- und Kleinschreibung unterschieden, und die von berechneten Prüfsummen CodeArtifact sind in Kleinbuchstaben formatiert. Wenn die Prüfsumme hochgeladen909FA780F76DA393E992A3D2D495F468 wird, schlägt sie daher fehl und die Prüfsumme stimmt nicht überein, da sie CodeArtifact nicht als gleich behandelt wird909fa780f76da393e992a3d2d495f468.

Wiederherstellung nach nicht übereinstimmenden Prüfsummen

Wenn ein Prüfsummen-Upload aufgrund einer nicht übereinstimmenden Prüfsumme fehlschlägt, versuchen Sie zur Wiederherstellung eine der folgenden Methoden:

  • Führen Sie den Befehl, der das Maven-Artefakt veröffentlicht, erneut aus. Dies könnte funktionieren, wenn ein Netzwerkproblem die Prüfsummendatei beschädigt hat. Wenn das Netzwerkproblem dadurch behoben ist, stimmt die Prüfsumme überein und der Download ist erfolgreich.

  • Löschen Sie die Paketversion und veröffentlichen Sie sie erneut. Weitere Informationen finden Sie DeletePackageVersionsin der CodeArtifact AWS-API-Referenz.