409: ошибка конфликта при копировании артефактов в Artifactory с использованием REST API

Я пытаюсь сделать копию артефакта в том же хранилище в Artifactory из PowerShell. Ниже приведен код, который я использую для достижения этой цели. И я получаю "Invoke-RestMethod: The remote server returned an error: (409) Conflict." ошибка при выполнении этого кода.

Invoke-RestMethod -Uri

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

Любая помощь приветствуется!

2 ответа

Я сталкивался с этим при попытке использовать папки. Если это тоже ваш случай, попробуйте сначала PUT-in путь к папке, и убедитесь, что аутентифицировали вызов как для этой, так и для 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)"}

Я знаю, что это старый вопрос, но я столкнулся с этой ошибкой, когда попытался скопировать артефакт в уже существующее место назначения (в основном, замена артефакта с тем же именем другой копией). У моего пользователя не было прав на удаление репо. Точный текст ошибки был:

        "messages" : [ {
    "level" : "ERROR",
    "message" : "User doesn't have permissions to override <artifact-name>. Needs delete permissions."
  } ]
Другие вопросы по тегам