

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à.

# Usa i checksum Maven
<a name="maven-checksums"></a>

 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](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html#welcome-concepts-package) 

## Archiviazione con checksum
<a name="maven-checksum-storage"></a>

CodeArtifact non memorizza i checksum di Maven come risorse. [Ciò significa che i checksum non appaiono come singole risorse nell'output dell'API. ListPackageVersionAssets ](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_ListPackageVersionAssets.html) 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 chiamato`maven-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 esempio`curl`, 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
<a name="maven-checksum-mismatch"></a>

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 invariato`Unfinished`.

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 su`Published`, 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
<a name="maven-checksum-mismatch-recovery"></a>

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, [DeletePackageVersions](https://docs.aws.amazon.com/dms/latest/APIReference/API_DeletePackageVersions.html)consulta *AWS CodeArtifact API Reference*.