如何使用curl从JFrog Artifactory下载最新版本的制品
JFrog最新版本制品curl下载方案
完全可以通过curl实现对应路径下最新版本制品的自动下载,针对你给出的示例场景,有两种常用实现方式:
方式1:通用AQL查询法(无前置依赖,所有场景通用)
不需要提前修改仓库配置,通过Artifactory原生的AQL查询接口先拉取最新版本号,再执行下载即可,命令示例如下:
步骤1:替换配置参数
先将命令中的占位符替换为你自己的实际信息:
JFROG_DOMAIN:你的JFrog域名,示例中为test.comUSERNAME:你的JFrog登录账号API_KEY:你的JFrog API密钥,也可以直接填登录密码
步骤2:执行下载命令
# 配置变量 JFROG_DOMAIN="test.com" REPO_PATH="users/data-config" ARTIFACT_NAME="user.json" USERNAME="替换为你的账号" API_KEY="替换为你的密钥/密码" # 查询最新版本号 LATEST_VERSION=$(curl -s -u "$USERNAME:$API_KEY" -X POST "https://$JFROG_DOMAIN/artifactory/api/search/aql" \ -H "Content-Type: text/plain" \ -d "items.find({\"repo\":\"users\",\"path\":{\"\$match\":\"$REPO_PATH/*\"},\"name\":\"$ARTIFACT_NAME\"}).sort({\"\$desc\":[\"path\"]}).limit(1)" | \ grep -o '"path":"[^"]*"' | cut -d '"' -f4 | awk -F '/' '{print $NF}') # 下载最新版本制品 curl -u "$USERNAME:$API_KEY" -O "https://$JFROG_DOMAIN/artifactory/$REPO_PATH/$LATEST_VERSION/$ARTIFACT_NAME"
运行后会直接下载到你示例中的2.0.0版本的user.json文件。
方式2:版本占位符法(需要提前开启语义化版本支持)
如果你的JFrog对应仓库已经开启了语义化版本解析功能,你可以直接用Artifactory内置的[RELEASE]占位符,单条命令即可完成下载,无需额外查询:
curl -u "你的账号:你的密钥" -O "https://test.com/artifactory/users/data-config/[RELEASE]/user.json"
Artifactory会自动识别data-config路径下的最新发布版本,返回2.0.0版本的制品。
注意事项
- 上述AQL查询默认按版本号降序排序,只要你的版本号符合
X.Y.Z的语义化规范即可正常识别 - 如果你的版本命名规则特殊,只需调整AQL语句中的排序规则即可适配
内容的提问来源于stack exchange,提问作者JDev
相关产品推荐
相关产品推荐

