Possible bug in CodeArtifact PowerShell command Publish-CAPackageVersion

0

I successfully published a zip file to CodeArtifact using the AWS CLI:

aws codeartifact publish-package-version --domain my-domain --repository my-builds --format generic --namespace my-space --package AppName --package-version 3.53.62 --asset-content <file  on my computer> --asset-name AppName.3.53.62.zip --asset-sha256  <my file hash>

I deleted the package from CodeArtifact and tried to re-publish using PowerShell:

Publish-CAPackageVersion -Domain my-domain -Repository my-builds -Format generic -Namespace my-space -Package AppName -PackageVersion 3.53.62 -AssetContent <file on my computer> -AssetName AppName.3.53.62.zip -AssetSHA256  <my file hash>

The result indicated success, but the package in CodeArtifact had issues. It was only about 100 bytes in size when it should have been about 5MB. The package could not be successfully fetched from CodeArtifact.

aws-cli version: 2.13.4 AWS PowerShell version: 4.1.323

質問済み 6ヶ月前204ビュー
1回答
0
承認された回答

Can you please provide a complete example and more details to help identify what may have gone wrong? In particular:

  1. How are you providing <file on my computer> and <my file hash>?
  2. "The package could not be successfully fetched from CodeArtifact." - What do you mean by this? A smaller than expected file came back, or you saw an error?

I was just able to test this successfully. One possibility is that you provided a file path for the AssetContent parameter, expecting similar behavior as the aws cli. If you provided a path string (like 'C:\some-file.txt'), then the content of that string is what will be saved as the asset file, not the contents of the file at that path. That could explain the small asset size. Here is a working example that provides a FileInfo object to AssetContent (string, string[], System.IO.FileInfo or System.IO.Stream are acceptable types per these docs).

$AssetFilePath = 'C:\some-file.txt'
$AssetFile = ([System.IO.FileInfo]$AssetFilePath)
$AssetSHA256 = (Get-FileHash -Path $AssetFile -Algorithm SHA256).Hash

Publish-CAPackageVersion
    -Domain test-domain
    -Repository test-repository
    -Format generic
    -Namespace test-ns
    -Package test-generic-package
    -PackageVersion 1.0.0
    -AssetContent $AssetFile
    -AssetName some-file.txt
    -AssetSHA256 $AssetSHA256
回答済み 6ヶ月前
profile picture
エキスパート
レビュー済み 1ヶ月前
  • That did the trick. Thank you so much Brian! I missed that the asset content had to be of type FileInfo.

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ