使用REST API访问Azure Dev Ops / VSTS工件中的文件内容

问题描述 投票:0回答:1

我希望将我作为工件推送到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

但是,我得到这个错误enter image description here

我想我缺少的是fileId字段,我不知道需要进去的内容。文档说fileId是文件的主键。但是,我不知道在哪里可以找到它。

azure-devops azure-pipelines-release-pipeline azure-pipelines-build-task azure-devops-rest-api azure-artifacts
1个回答
0
投票

使用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?

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.