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."
} ]