As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Quando um artefato Maven é publicado em um AWS CodeArtifact repositório, a soma de verificação associada a cada ativo ou arquivo no pacote é usada para validar o upload. Os arquivos jar, pom e war são exemplos de ativos. Para cada ativo, o artefato do Maven contém vários arquivos de soma de verificação que usam o nome do ativo com uma extensão adicional, como md5
ou sha1
. Por exemplo, os arquivos de soma de verificação de um arquivo chamado my-maven-package.jar
podem ser my-maven-package.jar.md5
e my-maven-package.jar.sha1
.
nota
O Maven usa o termoartifact
. Neste guia, um pacote Maven é o mesmo que um artefato do Maven. Para obter mais informações, consulte o AWS CodeArtifactpacote.
Armazenamento da soma de verificação
CodeArtifact não armazena somas de verificação do Maven como ativos. Isso significa que as somas de verificação não aparecem como ativos individuais na saída da ListPackageVersionAssets API. Em vez disso, as somas de verificação calculadas por CodeArtifact estão disponíveis para cada ativo em todos os tipos de soma de verificação compatíveis. Por exemplo, parte da resposta da chamada ListPackageVersionAssets na versão do pacote 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"
}
}
Mesmo que as somas de verificação não sejam armazenadas como ativos, os clientes do Maven ainda podem publicar e baixar as somas de verificação nos locais esperados. Por exemplo, se commons-lang:commons-lang 2.1
estivesse em um repositório chamado maven-repo
, o caminho do URL para a soma de verificação SHA-256 do arquivo JAR seria:
/maven/maven-repo/commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha256
Se você estiver fazendo o upload de pacotes Maven existentes (por exemplo, pacotes previamente armazenados no Amazon S3) CodeArtifact para usar um cliente HTTP genérico, curl
como, por exemplo, não é necessário carregar as somas de verificação. CodeArtifact os gerará automaticamente. Se quiser verificar se os ativos foram carregados corretamente, você pode usar a operação da ListPackageVersionAssets API para comparar as somas de verificação na resposta com os valores originais de cada ativo.
Incompatibilidades da soma de verificação durante a publicação
Além dos ativos e das somas de verificação, os artefatos do Maven também contêm um arquivo maven-metadata.xml
. A sequência normal de publicação de um pacote Maven é que todos os ativos e somas de verificação sejam carregados primeiro, seguidos por maven-metadata.xml
. Por exemplo, a sequência de publicação da versão commons-lang 2.1
do pacote Maven descrita anteriormente, supondo que o cliente tenha sido configurado para publicar arquivos da soma de verificação SHA-256, seria:
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
Ao carregar o arquivo de soma de verificação de um ativo, como um arquivo JAR, a solicitação de upload da soma de verificação falhará com uma resposta 400 (Solicitação inválida) se houver uma incompatibilidade entre o valor da soma de verificação carregada e o valor da soma de verificação calculado por. CodeArtifact Se o ativo correspondente não existir, a solicitação falhará com a resposta 404 (Não encontrado). Para evitar esse erro, você deve primeiro carregar o ativo e, em seguida, fazer o upload da soma de verificação.
Quando maven-metadata.xml
é carregado, CodeArtifact normalmente muda o status da versão do pacote Maven de Unfinished
paraPublished
. Se uma incompatibilidade de soma de verificação for detectada para qualquer ativo, CodeArtifact retornará 400 (solicitação inválida) em resposta à solicitação de maven-metadata.xml
publicação. Esse erro pode impedir que o cliente faça upload de arquivos para essa versão do pacote. Se isso ocorrer e o arquivo maven-metadata.xml
não for carregado, nenhum ativo da versão do pacote já carregado poderá ser baixado. Isso ocorre porque o status da versão do pacote não está definido como Published
e permanece como Unfinished
.
CodeArtifact permite adicionar mais ativos a uma versão do pacote Maven mesmo após maven-metadata.xml
o upload e o status da versão do pacote ter sido definido como. Published
Nesse status, uma solicitação para carregar um arquivo de soma de verificação incompatível também falhará com uma resposta 400 (Solicitação inválida). No entanto, como o status da versão do pacote já foi definido como Published
, você pode baixar qualquer ativo do pacote, incluindo aqueles para os quais o upload do arquivo de soma de verificação falhou. Ao baixar uma soma de verificação para um ativo em que o upload do arquivo de soma de verificação falhou, o valor da soma de verificação que o cliente receberá será o valor da soma de verificação calculado CodeArtifact com base nos dados do ativo carregado.
CodeArtifact as comparações de somas de verificação diferenciam maiúsculas de minúsculas e as somas de verificação calculadas por CodeArtifact são formatadas em minúsculas. Portanto, se a soma de verificação 909FA780F76DA393E992A3D2D495F468
for carregada, ela falhará com uma incompatibilidade de soma de verificação porque CodeArtifact não a trata como igual a. 909fa780f76da393e992a3d2d495f468
Recuperação no caso de incompatibilidades da soma de verificação
Se o upload de uma soma de verificação falhar como resultado de uma incompatibilidade, tente uma das seguintes opções de recuperação:
Execute o comando que publica o artefato do Maven novamente. Isso pode funcionar se um problema de rede tiver corrompido o arquivo de soma de verificação. Se isso resolver o problema de rede, a soma de verificação será correspondente e o download será concluído.
Exclua a versão do pacote e, em seguida, faça uma nova publicação. Para obter mais informações, consulte DeletePackageVersionsa AWS CodeArtifact API Reference.