1

我正在尝试在上传文件之前在 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.

我还尝试将匿名用户添加到管理员组,并且 API 密钥对所有内容都具有权限。我尝试将所有标头和查询字符串的 API 密钥替换为用户名:密码格式,但这只会导致相同的错误。

我使用 Web 代理检查了标头和 URL 是否正确且格式正确。

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

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

4

1 回答 1

1

那应该按原样工作。我已经提交了一个错误,以便在下一个维护版本中修复此问题,最好是尽快提供补丁(在相关问题PG-1597中提供)。

于 2019-09-26T14:46:02.327 回答