我正在尝试在上载文件之前在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格式,但这只会导致相同的错误。
我已经通过使用web代理检查了报头和URL是否正确且格式正确。
ProGet应用编程接口文档不是很好...没有任何示例用法片段。
有人知道我做错了什么吗?为什么ProGet不能识别我的API Key或我的用户?
发布于 2019-09-26 22:46:02
这应该可以按原样工作。我已经提交了一个bug,以便在下一个维护版本中修复这个问题,理想的情况是尽快提供补丁(可在相关的问题PG-1597中找到)。
https://stackoverflow.com/questions/58116994
复制相似问题