我希望将我作为工件推送到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
是文件的主键。但是,我不知道在哪里可以找到它。
使用REST API访问Azure Dev Ops / VSTS工件中的文件内容
如果您使用的是Publish Build Artifacts任务,则不支持GetFile API。
我们可以使用GetArtifacts API来获取artifactName的详细信息(任务中的默认值是drop),输入和下载URL。但下载URL是针对zip而不是单个文件。
Azure DevOps团队没有针对单个文件下载的公开记录和支持的API,但仅支持zip下载。
此外,GetFile API支持“Azure Pipeline Artifacts”,可以使用Publish Pipeline Artifacts task上传。
你可以从这里查看差异:
What is the difference between build and pipeline artifacts?
希望这可以帮助。