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

如何用cURL从Azure DevOps下载完整Universal/UPack制品?

使用cURL+jq从Azure DevOps下载完整Universal/UPack制品

以下是和你现有Maven下载逻辑同类的实现方案,无需安装Azure CLI,仅用cURL和jq即可完成UPack制品的最新版本获取与完整包下载:

1. 获取UPack制品的最新版本号

UPack包的查询API需要指定包类型参数,解析返回的JSON结构和Maven略有不同,脚本如下:

# 替换为你的Azure DevOps信息
ORG_NAME="<ORGANISATION_NAME>"
PROJECT_ID="<PROJECT_ID>"
FEED_ID="<FEED_ID>"
UPACK_PACKAGE_NAME="<UPACK_PACKAGE_NAME>"
# 注意:PAT需要拥有Packaging Read权限,用户名可留空
PAT="<PERSONAL_ACCESS_TOKEN>"

# 调用API获取最新版本号
PKG_VERSION=$(curl -s -u :$PAT "https://feeds.dev.azure.com/$ORG_NAME/$PROJECT_ID/_apis/packaging/feeds/$FEED_ID/packages?packageNameQuery=$UPACK_PACKAGE_NAME&packageType=upack&api-version=7.1-preview.1" | jq -r ".value[0].versions[0].normalizedVersion")

2. 下载完整UPack制品包

构造UPack专属的下载URL,直接拉取完整包文件:

# 下载完整包到本地,文件名格式为[包名]-[版本号].upack
curl -u :$PAT -o "$UPACK_PACKAGE_NAME-$PKG_VERSION.upack" -L "https://pkgs.dev.azure.com/$ORG_NAME/$PROJECT_ID/_apis/packaging/feeds/$FEED_ID/upack/$UPACK_PACKAGE_NAME/$PKG_VERSION/content"

关键差异说明(对比你的Maven逻辑)

  • 查询包时必须添加packageType=upack参数,否则会返回其他类型的包
  • 下载URL的路径前缀为upack,而非Maven的maven路径
  • UPack包没有groupId层级,直接使用包名即可定位

注意事项

  • 确保你的个人访问令牌(PAT)拥有Packaging Read权限,否则会出现权限错误
  • 如果UPack包存在多平台变体(如linux-x64、win-x64),需要在查询或下载时添加变体参数,例如在下载URL末尾追加&variant=linux-x64
  • 需提前安装jq工具,用于解析API返回的JSON数据

内容的提问来源于stack exchange,提问作者MartinZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:45:08