上游存儲庫的 API 行為 - CodeArtifact

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

上游存儲庫的 API 行為

當您在連接到上游存放庫的存放庫上呼叫特定 CodeArtifact API 時,行為可能會因套裝軟體或套件版本是儲存在目標存放庫還是上游存放庫中而有所不同。這些 API 的行為記錄在這裡。

如需 API 的詳細資 CodeArtifact 訊,請參閱 CodeArtifact API 參考資料。

如果目標存放庫中沒有指定的套件版本,則參照套件或套件版本的大多數 API 都會傳回ResourceNotFound錯誤。即使套件或套件版本存在於上游存放庫中也是如此。實際上,調用這些 API 時會忽略上游存儲庫。這些 API 包括:

  • DeletePackageVersions

  • DescribePackageVersion

  • GetPackageVersionAsset

  • GetPackageVersionReadme

  • ListPackages

  • ListPackageVersionAssets

  • ListPackageVersionDependencies

  • ListPackageVersions

  • UpdatePackageVersionsStatus

為了演示這種行為,我們有兩個存儲庫:target-repoupstream-repotarget-repo為空且已upstream-repo配置為上游儲存庫。 upstream-repo包含 npm 套件lodash

當調用包含包的 DescribePackageVersion upstream-repo API 時,我們得到以下輸出:lodash

{ "packageVersion": { "format": "npm", "packageName": "lodash", "displayName": "lodash", "version": "4.17.20", "summary": "Lodash modular utilities.", "homePage": "https://lodash.com/", "sourceCodeRepository": "https://github.com/lodash/lodash.git", "publishedTime": "2020-10-14T11:06:10.370000-04:00", "licenses": [ { "name": "MIT" } ], "revision": "Ciqe5/9yicvkJT13b5/LdLpCyE6fqA7poa9qp+FilPs=", "status": "Published" }

當調用相同的 API(空的target-repo,但已upstream-repo配置為上游)時,我們得到以下輸出:

An error occurred (ResourceNotFoundException) when calling the DescribePackageVersion operation: Package not found in repository. RepoId: repo-id, Package = PackageCoordinate{packageType=npm, packageName=lodash},

CopyPackageVersionsAPI 的行為方式不同。依預設,CopyPackageVersionsAPI 只會複製儲存在目標儲存庫中的套件版本。如果套件版本儲存在上游存放庫中,但不儲存在目標存放庫中,則不會複製該套件版本。若要包含僅儲存在上游存放庫中的套件的套件版本,請在 API 請求trueincludeFromUpstream將的值設定為。

如需 CopyPackageVersions API 的詳細資訊,請參閱在儲存庫之間複製套件