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

如何使用wget下载文件名版本动态变化的Jenkins artifact构件

解决方案

方法1:直接使用wget通配符匹配(最简单,适合目录下仅有一个符合规则的dmg文件的场景)

将原路径里的固定版本号替换为通配符*,同时使用--content-disposition参数让wget自动沿用服务器返回的原始文件名保存,无需手动指定输出文件名:

wget "https://test.com/job/testreport/job/${{parameters.test_buildjob}}/lastSuccessfulBuild/artifact/directrs/srww_*.dmg" \
--no-check-certificate \
--http-user=$(USERNAME) \
--http-password=$(PASSWORD) \
--auth-no-challenge \
--no-verbose \
--content-disposition

如果后续操作需要用到下载的文件名,可以在下载完成后用变量捕获:

# 按修改时间排序,取最新的srww开头dmg文件的文件名
DMG_NAME=$(ls -t srww_*.dmg | head -1)

方法2:先获取真实文件名再下载(适合目录下有多个版本文件、需要精准匹配的场景)

先请求文件存储目录的列表页,匹配出实际的dmg文件名后再执行下载,完全避免硬编码:

# 定义基础目录地址
BASE_URL="https://test.com/job/testreport/job/${{parameters.test_buildjob}}/lastSuccessfulBuild/artifact/directrs/"
# 拉取目录列表,提取出符合规则的dmg文件名
DMG_NAME=$(wget -qO- --no-check-certificate --http-user=$(USERNAME) --http-password=$(PASSWORD) $BASE_URL | grep -oE 'srww_[0-9.]+\.dmg' | head -1)

# 拼接完整链接执行下载
wget "${BASE_URL}${DMG_NAME}" \
--no-check-certificate \
--http-user=$(USERNAME) \
--http-password=$(PASSWORD) \
--auth-no-challenge \
--no-verbose \
-O ${DMG_NAME}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:27:03