ProGet Asset Registry无法识别API密钥

时间:2019-09-26 12:37:59

标签: proget

我正在尝试在上传文件之前在ProGet资产目录中创建子目录。该文档说资产目录被视为提要,我可以通过错误消息来确认(将顶级目录名称更改为不存在的内容,并且得到适当的“提要不存在”错误消息)。但是,当我尝试创建子目录时,它似乎并不遵循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.

我还尝试了将匿名用户添加到Admin组,并且API密钥拥有所有权限。我尝试将所有标头和查询字符串上的API密钥替换为Username:Password格式,但这只会导致相同的错误。

我检查了标头和URL是否正确,并通过使用Web代理正确地构成了

ProGet API文档不是很好...没有任何示例用法摘要。

有人知道我在做什么错吗?为什么ProGet无法识别我的API密钥或我的用户?

1 个答案:

答案 0 :(得分:1)

这应该保持原样。我已经提交了一个错误,希望在下一个维护版本中对此问题进行修复,最好是尽快提供一个补丁(在相关问题PG-1597中提供)。