我正在尝试在上传文件之前在 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 密钥或我的用户?