我正在尝试通过Powershell脚本使用REST API下载TFS构建工件。我收到401授权错误。我有什么想念的吗?
invoke-webrequest -uri "https://collectionurl/tfs/DefaultCollection/_apis/build/builds/33002/artifacts?artifactName=drop&api-version=2.0&%24format=zip" -OutFile "C:\Temp\drop.zip" -UseDefaultCredentials
也通过浏览器尝试过,不断提供凭据弹出窗口。我验证了我的帐户访问权限,一切似乎都很完美。
我正在部署TFS 2018。
答案 0 :(得分:0)
我采用了另一种方法来下载工件。但是,如果有人能够找到上述解决方案,将不胜感激。
我使用下面的API来下载工件(发现我们也可以下载单个文件)。能够通过GET生成详细信息检索Container ID。
https://collectionurl/tfs/defaultcollection/_apis/resources/Containers/${containerid}?itempath=drop
答案 1 :(得分:0)
您的API看起来不错,似乎只是调用了整个drop文件夹的下载网址。就像这张票:How to get the download url of the artifact in Visual Studio Team Services?
根据您的描述,即使通过浏览器,它仍然会不断提供凭据弹出窗口。
如果是,则您的问题可能与凭证缓存有关。尝试清除存储在控制窗格-凭据管理器中的所有TFS凭据缓存。
此外,您也可以尝试使用 PAT ,而不是使用帐户/密码。用户名应为空。 PAT是密码。
由于您正在将PAT与本地TFS服务器一起使用,请检查是否已关闭基本身份验证。
我们建议您始终关闭IIS基本身份验证 使用Azure DevOps Server时。仅在必要时才启用 IIS基本身份验证。在上启用IIS基本身份验证时 您的Windows计算机,它会阻止您使用个人访问权限 令牌(PAT)作为身份验证机制。
有关如何使用Powershell下载构建工件的更多详细信息,您也可以浏览此博客-Downloading Build Artifacts in TFS Build