我希望获取作为工件推送到Azure DevOps的文件的内容
通过使用此API,我能够获得带有工件zip的URL的json响应
https://dev.azure.com/uifabric/cd9e4e13-b8db-429a-9c21-499bf1c98639/_apis/build/builds/8838/artifacts?artifactName=drop&api-version=5.0
但是,我真正想要的是此zip文件中名为bundlesizes.json
的文件的内容。
我确实遇到了Get File API here,其中提到了以下API
GET https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/artifacts?artifactName={artifactName}&fileId={fileId}&fileName={fileName}&api-version=5.0
我尝试如下替换
https://dev.azure.com/uifabric/fabricpublic/_apis/build/builds/8838/artifacts?artifactName=drop&fileId=bundlesizes.json&fileName=bundlesizes.json&api-version=5.0
我认为我所缺少的是fileId
字段,我不知道需要输入什么。文档说fileId
是文件的主键。但是,我不知道在哪里可以找到它。
答案 0 :(得分:2)
Microsoft没有有关如何获取FileID的完整文档。
您可以采用其他方法,并使用以下API下载文件。您可以通过GET构建详细信息获取ContainerID。
https://collectionurl/tfs/defaultcollection/_apis/resources/Containers/${containerid}?itempath=drop
答案 1 :(得分:0)
使用REST API访问Azure Dev Ops / VSTS工件中的文件内容
如果您正在使用Publish Build Artifacts任务,则不不支持GetFile API。
我们可以使用GetArtifacts API来获取artifactName(任务中的默认值为drop)的详细信息,键入并下载URL。但是下载URL用于 zip ,而不是单个文件。
Azure DevOps团队尚未公开记录和支持用于单个文件下载的API,仅支持zip下载。
此外,“ Azure Pipeline Artifacts”还支持GetFile API,可以使用Publish Pipeline Artifacts task上传该文件。
您可以从此处检查差异:
What is the difference between build and pipeline artifacts?
希望这会有所帮助。