发布和使用通用程序包 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

发布和使用通用程序包

要发布通用程序包版本及其相关资产,请使用 publish-package-version 命令。您可以使用 list-package-version-asset 命令列出通用程序包的资产,然后使用 get-package-version-asset 下载资产。以下主题包含使用这些命令发布通用包或下载通用包资产的 step-by-step 说明。

发布通用程序包

通用程序包由程序包名称、命名空间、版本和一个或多个资产(或文件)组成。本主题演示如何发布名为 my-package、命名空间为 my-ns、版本为 1.0.0 且包含一个名为 asset.tar.gz 的资产的程序包。

先决条件:

发布通用程序包
  1. 使用以下命令为要上传到程序包版本的每个文件生成 SHA256 哈希值,并将该值放入环境变量中。此值用作完整性检查,用来确认在最初发送后未更改文件内容。

    Linux
    export ASSET_SHA256=$(sha256sum asset.tar.gz | awk '{print $1;}')
    macOS
    export ASSET_SHA256=$(shasum -a 256 asset.tar.gz | awk '{print $1;}')
    Windows
    for /f "tokens=*" %G IN ('certUtil -hashfile asset.tar.gz SHA256 ^| findstr /v "hash"') DO SET "ASSET_SHA256=%G"
  2. 调用 publish-package-version 来上传资产并创建新的程序包版本。

    注意

    如果您的程序包中包含多个资产,则可以为要上传的每个资产调用一次 publish-package-version。每次调用 publish-package-version 都包括 --unfinished 参数,上传最终资产时除外。省略 --unfinished 会将程序包版本的状态设置为 Published,并阻止将额外资产上传到该版本。

    或者,在每次调用 publish-package-version 时都包括 --unfinished,然后使用 update-package-versions-status 命令将程序包版本的状态设置为 Published

    Linux/macOS
    aws codeartifact publish-package-version --domain my_domain --repository my_repo \ --format generic --namespace my-ns --package my-package --package-version 1.0.0 \ --asset-content asset.tar.gz --asset-name asset.tar.gz \ --asset-sha256 $ASSET_SHA256
    Windows
    aws codeartifact publish-package-version --domain my_domain --repository my_repo ^ --format generic --namespace my-ns --package my-package --package-version 1.0.0 ^ --asset-content asset.tar.gz --asset-name asset.tar.gz ^ --asset-sha256 %ASSET_SHA256%

    下面显示了输出。

    { "format": "generic", "namespace": "my-ns", "package": "my-package", "version": "1.0.0", "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC", "status": "Published", "asset": { "name": "asset.tar.gz", "size": 11, "hashes": { "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5", "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1", "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256", "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512" } } }

列出通用程序包资产

要列出通用程序包中包含的资产,请使用 list-package-version-assets 命令。有关更多信息,请参阅 列出程序包版本资产

以下示例列出程序包 my-package 的版本 1.0.0 的资产。

列出程序包版本资产
  • 调用 list-package-version-assets 来列出通用程序包中包含的资产。

    Linux/macOS
    aws codeartifact list-package-version-assets --domain my_domain \ --repository my_repo --format generic --namespace my-ns \ --package my-package --package-version 1.0.0
    Windows
    aws codeartifact list-package-version-assets --domain my_domain ^ --repository my_repo --format generic --namespace my-ns ^ --package my-package --package-version 1.0.0

    下面显示了输出。

    { "assets": [ { "name": "asset.tar.gz", "size": 11, "hashes": { "MD5": "41bba98d5b9219c43089eEXAMPLE-MD5", "SHA-1": "69b215c25dd4cda1d997a786ec6EXAMPLE-SHA-1", "SHA-256": "43f24850b7b7b7d79c5fa652418518fbdf427e602b1edabe6EXAMPLE-SHA-256", "SHA-512": "3947382ac2c180ee3f2aba4f8788241527c8db9dfe9f4b039abe9fc560aaf5a1fced7bd1e80a0dca9ce320d95f0864e0dec3ac4f2f7b2b2cbEXAMPLE-SHA-512" } } ], "package": "my-package", "format": "generic", "namespace": "my-ns", "version": "1.0.0", "versionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC" }

下载通用程序包资产

要从通用程序包下载资产,请使用 get-package-version-asset 命令。有关更多信息,请参阅 下载程序包版本资源

以下示例将资产 asset.tar.gz 从程序包 my-package 的版本 1.0.0 下载到当前工作目录中也命名为 asset.tar.gz 的文件中。

下载程序包版本资产
  • 调用 get-package-version-asset 从通用程序包下载资产。

    Linux/macOS
    aws codeartifact get-package-version-asset --domain my_domain \ --repository my_repo --format generic --namespace my-ns --package my-package \ --package-version 1.0.0 --asset asset.tar.gz \ asset.tar.gz
    Windows
    aws codeartifact get-package-version-asset --domain my_domain ^ --repository my_repo --format generic --namespace my-ns --package my-package ^ --package-version 1.0.0 --asset asset.tar.gz ^ asset.tar.gz

    下面显示了输出。

    { "assetName": "asset.tar.gz", "packageVersion": "1.0.0", "packageVersionRevision": "REVISION-SAMPLE-1-C7F4S5E9B772FC" }