我正在尝试使用 DOS 批处理脚本从 Jenkins 项目下载工件。这不仅仅是微不足道的原因是我的工件是一个 ZIP 文件,其名称中包含 Jenkins 版本号,因此我不知道确切的文件名。
我当前的攻击计划是使用 wget 指向:/lastSuccessfulBuild/artifact/ 进行某种递归/镜像下载。
如果我执行以下操作:
wget -r -np -l 1 -A zip --auth-no-challenge --http-user=**** --http-password=**** http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/
(*是我为发布到SO而更改的字符)
我从来没有得到过 ZIP 文件。如果我省略 -A zip 选项,我确实会得到 index.html,所以我认为授权正在工作,除非是某种 session 缓存问题?
使用 -A zip
我得到响应的一部分:
Removing ...+8080/job/MyProject/lastSuccessfulBuild/artifact/index.html since it should be rejected.
所以我不确定它是否会删除该文件,因此不跟踪其链接?但是执行 -A zip,html
也不起作用。
我尝试了几个 wget 选项,也尝试了curl,但我一无所获。
我不知道我是否有错误的 wget 选项,或者 Jenkins 身份验证是否有什么特殊之处。
最佳答案
您可以将 /*zip*/desired_archive_name.zip
添加到工件位置的任何文件夹。
如果您的 ZIP 文件是作业存档的唯一工件,您可以使用:
http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/*zip*/myfile.zip
其中 myfile.zip
只是您分配给可下载存档的名称,可以是任何名称。
如果您存档了多个工件,您仍然可以获得所有工件的 ZIP 文件,并在提取时处理单个工件。或者将所需的工件放入单独的文件夹中,并将 /*zip*/
应用到该文件夹。
关于batch-file - 使用 wget 或 curl 从 Jenkins 下载工件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31432189/