You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Azure DevOps Pipeline Run Artifacts REST API下载构件?

解决Azure DevOps流水线构件内容下载问题

方法一:使用Build Artifacts API获取直接下载地址

  • 替换原有的Pipelines/Artifacts接口,调用Build构件详情API:
    GET https://dev.azure.com/<org>/<project>/_apis/build/builds/<run-ID>/artifacts?api-version=7.1-preview.5
    
    这里的<run-ID>就是你从Pipelines/Runs接口获取的运行ID(流水线运行与Build ID为同一值)。
  • 接口返回的每个<Artifact>对象中,resource字段会包含关键信息:
    • 若构件为可打包下载的压缩包,downloadUrl字段直接提供完整下载链接,请求该链接即可将构件内容保存到本地。
    • containerId字段对应Web UI下载URL中的整数编号,可用于构造自定义下载路径。

方法二:通过Container ID构造下载URL

拿到containerId后,根据需求构造不同的下载链接:

  • 下载整个构件为ZIP包:
    GET https://dev.azure.com/<org>/_apis/resources/Containers/<containerId>?itemPath=<artifact-name>&format=zip
    
  • 下载构件内的单个文件或子目录:
    GET https://dev.azure.com/<org>/_apis/resources/Containers/<containerId>/<artifact-name>?itemPath=<artifact-name>/<path-in-artifact>
    
    注意将<path-in-artifact>替换为构件内的实际文件/目录路径,URL中的特殊字符需做URL编码(比如/转义为%2F)。

关于signedContent字段缺失的说明

signedContent字段仅针对特定类型构件(如经过签名的包)返回,流水线生成的普通文件构件通常不会包含该字段。使用Build Artifacts API获取downloadUrl或containerId是更通用的解决方案。

补充:Run接口containers集合为空的原因

Pipelines/Runs接口返回的containers集合仅包含流水线运行过程中临时生成的容器资源,并不包含构件对应的存储容器。通过Build Artifacts API获取的containerId才是构件存储的正确标识。

内容的提问来源于stack exchange,提问作者F-H

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:43:29