如何使用用户名密码凭证从私有GitLab仓库下载单个原始文件
你遇到的重定向问题是因为curl默认不会自动跟随3xx跳转响应,且直接将认证凭证拼接在URL中的方式兼容性较差,可通过以下方法解决:
方法1:使用原有凭证通过curl下载
通过-u参数传递认证信息,同时添加-L参数自动跟随重定向即可,命令格式如下:
curl -L -u "some-git-lab-token:someHash" "https://git.xxx.com/foo/bar/-/raw/master/testing.js" -o testing.js
参数说明:
-L:收到重定向响应时自动跳转到目标地址-u:按照用户名:密码格式传递认证信息,相比直接拼接在URL中兼容性更高-o testing.js:将下载的文件保存为本地的testing.js,省略该参数会直接将文件内容打印到终端
如果使用wget,对应命令为:
wget --user="some-git-lab-token" --password="someHash" "https://git.xxx.com/foo/bar/-/raw/master/testing.js"
方法2:通过请求头传递令牌(更推荐)
如果你使用的someHash是GitLab个人访问令牌(PAT),可以直接通过请求头携带认证信息,兼容性和安全性更高:
curl -L --header "PRIVATE-TOKEN: someHash" "https://git.xxx.com/foo/bar/-/raw/master/testing.js" -o testing.js
注:请确认你的令牌已经开启对应仓库的
read_repository读取权限,且文件路径、分支名填写准确。
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

