Я пытаюсь создать подкаталоги в ProGet Asset Directory перед загрузкой файлов. В документации говорится, что каталоги ресурсов рассматриваются как каналы, что я могу подтвердить с помощью сообщений об ошибках (измените имя каталога верхнего уровня на несуществующее, и я получу соответствующее сообщение об ошибке «Канал не существует»). Однако, когда я пытаюсь создать подкаталог, он, похоже, не учитывает ключ API и вместо этого сообщает как анонимный пользователь. Я попытался передать ключ по URL-адресу и установить как заголовок X-ApiKey, так и заголовок X-NUGET-APIKEY.
Фрагмент PowerShell (вы увидите, что я устанавливаю его всеми способами, описанными в документации — я также пробовал каждый вариант по отдельности):
$DirectoryEndpoint = "$Server/endpoints/$AssetDirectoryName/dir/$AssetDirectoryPath" +"?key=$ApiKey"
Write-Output $DirectoryEndpoint
$headers = @{
'X-NUGET-APIKEY' = $ApiKey
'X-ApiKey' = $ApiKey
}
#Create the directory (if exists will do nothing)
Invoke-RestMethod -Method 'Post' -Uri $DirectoryEndpoint -Headers $headers -Body @{}
В результате появляется сообщение об ошибке:
Invoke-RestMethod : Anonymous is not permitted to perform the Feeds_AddPackage task for the current scope.
Я также пытался добавить анонимного пользователя в группу администраторов, и ключ API имеет права на все. Я попытался заменить ключ API для всех заголовков и в строке запроса на формат имени пользователя: пароль, но это приводит к той же ошибке.
Я проверил правильность и корректность заголовков и URL-адресов с помощью веб-прокси.
Документация по ProGet API не очень хороша... нет примеров использования фрагментов.
Кто-нибудь знает, что я делаю неправильно? Почему ProGet не идентифицирует мой ключ API или моего пользователя?