每次尝试从GitLab下载我的工件时,我都会看到将html格式保存在文件中,而不是xip文件本身。
我在这里发现了很多类似的东西,但是没有一个解决方案起作用。
我已经尝试过-l,-O -o使用--ouptput filename.zip更改了oupt文件,并且总是下载html文件。
链接...
https://gitlab.com/dafabe/example/-/jobs/artifacts/master/download?job=build
我如何更改命令以下载实际文件?
完整命令:
curl https://gitlab.com/dafabe/example/-/jobs/artifacts/master/download?job=build --output filename.zip
尝试使用toke设置
curl 'https://gitlab.com/dafabe/example/-/jobs/artifacts/master/raw/build/hello?job=build&private_token=<private token here>'
我收到此回复...
<html><body>You are being <a href="https://gitlab.com/users/sign_in">redirected</a>.</body></html>
最近的尝试和结果...
ubuntu-trusty-64:〜/ stuff $ curl -L -H“ PRIVATE-TOKEN:> xxxxx” https://gitlab.com/dafabe/example/-/jobs/artifacts/master/download?job=build --output filename.zip%总计%接收的%Xferd平均速度时间时间时间当前 Dload上传总剩余左速度100 98 100 98 0 0 189 0-:-:--:-:- -:-:-189 0 0 0 19509 0 0 23717 0-:-:--:-:--:-:-168k vagrant @ vagrant-ubuntu-trusty- 64:〜/ stuff $ ls filename.zip vagrant @ vagrant-ubuntu-trusty-64:〜/ stuff $ file -b filename.zip HTML文档,UTF-8 Unicode文本,带有很长的行 vagrant @ vagrant-ubuntu-trusty-64:〜/ stuff $
答案 0 :(得分:2)
这可能是身份验证问题,就像评论中提到的人一样(在这种情况下,您可以例如在标头请求中传递您的个人令牌)。
如果您的项目是公开的,则无需身份验证即可下载档案。但是,如果您被重定向,您仍然可能会收到HTML响应。在这种情况下,您可以传递选项-L, --location
进行卷曲:
curl -L https://gitlab.com/dafabe/example/-/jobs/artifacts/master/download?job=build --output filename.zip
您可以通过检查已下载的HTML页面的内容来确定您是哪种情况。
要使用个人令牌登录(请参见here,以获取有关创建令牌的帮助,请选择api
作为范围),输入:
curl -L -H "PRIVATE-TOKEN: XXXXXXXX" https://gitlab.com/dafabe/example/-/jobs/artifacts/master/download?job=build --output filename.zip
XXXXXXXX
应该替换为您生成的令牌。