Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

Usa i checksum Maven

Modalità Focus
Usa i checksum Maven - CodeArtifact

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Quando un artefatto Maven viene pubblicato in un AWS CodeArtifact repository, il checksum associato a ogni risorsa o file del pacchetto viene utilizzato per convalidare il caricamento. Esempi di risorse sono i file jar, pom e war. Per ogni risorsa, l'artefatto Maven contiene più file di checksum che utilizzano il nome della risorsa con un'estensione aggiuntiva, ad esempio o. md5 sha1 Ad esempio, i file di checksum per un file denominato potrebbero essere e. my-maven-package.jar my-maven-package.jar.md5 my-maven-package.jar.sha1

Nota

Maven usa il termine. artifact In questa guida, un pacchetto Maven è uguale a un artefatto Maven. Per ulteriori informazioni, vedi pacchetto.AWS CodeArtifact

Archiviazione con checksum

CodeArtifact non memorizza i checksum di Maven come risorse. Ciò significa che i checksum non appaiono come singole risorse nell'output dell'API. ListPackageVersionAssets Invece, i checksum calcolati da CodeArtifact sono disponibili per ogni risorsa in tutti i tipi di checksum supportati. Ad esempio, parte della risposta alla chiamata ListPackageVersionAssets sulla versione del pacchetto Maven è: commons-lang:commons-lang 2.1

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

Anche se i checksum non sono archiviati come risorse, i client Maven possono comunque pubblicare e scaricare i checksum nelle posizioni previste. Ad esempio, se si commons-lang:commons-lang 2.1 trovasse in un repository chiamatomaven-repo, il percorso URL per il checksum SHA-256 del file JAR sarebbe:

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

Se stai caricando pacchetti Maven esistenti (ad esempio, pacchetti precedentemente archiviati in Amazon S3) su un CodeArtifact client HTTP generico, ad esempiocurl, non è necessario caricare i checksum. CodeArtifact li genererà automaticamente. Se desideri verificare che gli asset siano stati caricati correttamente, puoi utilizzare l'operazione ListPackageVersionAssets API per confrontare i checksum nella risposta con i valori di checksum originali per ogni risorsa.

I checksum non corrispondono durante la pubblicazione

Oltre agli asset e ai checksum, gli artefatti di Maven contengono anche un file. maven-metadata.xml La normale sequenza di pubblicazione per un pacchetto Maven prevede che tutti gli asset e i checksum vengano caricati per primi, seguiti da. maven-metadata.xml Ad esempio, la sequenza di pubblicazione per la versione del pacchetto Maven commons-lang 2.1 descritta in precedenza, presupponendo che il client sia configurato per pubblicare file con checksum SHA-256, sarebbe:

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

Quando si carica il file di checksum per una risorsa, ad esempio un file JAR, la richiesta di caricamento del checksum avrà esito negativo e restituirà una risposta 400 (Bad Request) se c'è una mancata corrispondenza tra il valore del checksum caricato e il valore del checksum calcolato da. CodeArtifact Se la risorsa corrispondente non esiste, la richiesta avrà esito negativo con una risposta 404 (Not Found). Per evitare questo errore, dovete prima caricare la risorsa e poi caricare il checksum.

Quando maven-metadata.xml viene caricato, CodeArtifact normalmente cambia lo stato della versione del pacchetto Maven da a. Unfinished Published Se viene rilevata una mancata corrispondenza del checksum per qualsiasi risorsa, CodeArtifact restituirà un 400 (Bad Request) in risposta alla richiesta di pubblicazione. maven-metadata.xml Questo errore può causare l'interruzione del caricamento dei file per quella versione del pacchetto da parte del client. Se ciò si verifica e il maven-metadata.xml file non viene caricato, le risorse della versione del pacchetto già caricate non possono essere scaricate. Questo perché lo stato della versione del pacchetto non è impostato Published e rimane invariatoUnfinished.

CodeArtifact consente di aggiungere ulteriori risorse a una versione del pacchetto Maven anche dopo che maven-metadata.xml è stata caricata e lo stato della versione del pacchetto è stato impostato su. Published In questo stato, anche una richiesta di caricamento di un file di checksum non corrispondente fallirà con una risposta 400 (Bad Request). Tuttavia, poiché lo stato della versione del pacchetto è già stato impostato suPublished, potete scaricare qualsiasi risorsa dal pacchetto, incluse quelle per cui il caricamento del file con il checksum non è riuscito. Quando scaricate un checksum per una risorsa il cui caricamento del file di checksum non è riuscito, il valore del checksum ricevuto dal client sarà il valore del checksum calcolato in CodeArtifact base ai dati della risorsa caricata.

CodeArtifact i confronti tra checksum fanno distinzione tra maiuscole e minuscole e i checksum calcolati da sono formattati in minuscolo. CodeArtifact Pertanto, se il checksum 909FA780F76DA393E992A3D2D495F468 viene caricato, avrà esito negativo con una mancata corrispondenza del checksum perché non lo considera uguale a. CodeArtifact 909fa780f76da393e992a3d2d495f468

Recupero in seguito a mancate corrispondenze nei checksum

Se il caricamento di un checksum non riesce a causa di una mancata corrispondenza del checksum, prova una delle seguenti operazioni per il ripristino:

  • Esegui nuovamente il comando che pubblica l'artefatto Maven. Questo potrebbe funzionare se un problema di rete danneggia il file di checksum. Se questo risolve il problema di rete, il checksum corrisponde e il download ha esito positivo.

  • Eliminare la versione del pacchetto e ripubblicarla. Per ulteriori informazioni, DeletePackageVersionsconsulta AWS CodeArtifact API Reference.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.