1

我正在尝试从 PowerShell 在 Artifactory 的同一存储库中制作工件的副本。下面是我用来实现这一点的代码。"Invoke-RestMethod: The remote server returned an error: (409) Conflict."执行此代码时 出现错误。

调用-RestMethod -Uri

http://server/artifactory/api/copy/repoName/Package1.nupkg?to=/repoName/Package2.nupkg ” -Method POST -UseDefaultCredentials

任何帮助表示赞赏!

4

2 回答 2

0

我知道这是一个老问题,但是当我尝试将工件复制到已经存在的目的地时遇到了这个错误(基本上,用另一个副本替换具有完全相同名称的工件)。我的用户没有 repo 的删除权限。确切的错误文本是:

  "messages" : [ {
    "level" : "ERROR",
    "message" : "User doesn't have permissions to override <artifact-name>. Needs delete permissions."
  } ]
于 2021-09-22T18:51:32.827 回答
0

我在尝试使用文件夹时遇到了这个问题。如果这也是您的情况,请先尝试 PUT 文件夹路径,并确保对此调用和 POST 副本都进行身份验证:

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("$user:$apikey"));

# Create path first
Invoke-WebRequest -Uri "https://server/artifactory/targetRepo/targetPath" `
    -Method PUT `
    -Headers @{ 'Authorization' = "Basic $($token)"}

# Copy item
Invoke-WebRequest -Uri "http://server/artifactory/api/copy/repoName/path/Package1.nupkg?to=/targetRepo/targetPath/Package2.nupkg" `
    -Method POST `
    -Headers @{ 'Authorization' = "Basic $($token)"}
于 2018-09-13T13:56:28.830 回答