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

GitLab CI中用Curl/Wget获取文件遇404 Not Found错误求助

排查GitLab CI中Curl/Wget获取文件返回404的问题

1. 修复URL格式错误

从你的配置和日志能看到,Curl命令的URL存在语法错误:

# 错误的URL片段
xxx%2Dxxx%2Fxxx%2Fxxx%2Dxxx%2Fxxx%2Etxt?/raw?ref=${CI_COMMIT_BRANCH}

这里的?/raw是错误写法,正确的API路径应该把/raw作为路径的一部分,而非用问号分隔。修正后的Curl命令:

- 'VERSION="$(curl --header "PRIVATE-TOKEN: ${PERSO_ACCESS_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/repository/files/xxx%2Dxxx%2Fxxx%2Fxxx%2Dxxx%2Fxxx%2Etxt/raw?ref=${CI_COMMIT_BRANCH}")"'

2. 核对文件路径编码的准确性

确认URL编码后的路径和仓库中实际文件路径完全匹配:

  • 若仓库中文件路径是xxx-xxx/xxx/xxx-xxx/xxx.txt,对应的URL编码应为xxx%2Dxxx%2Fxxx%2Fxxx%2Dxxx%2Fxxx%2Etxt,你当前的编码逻辑是对的,但建议手动核对层级、文件名的拼写和符号,避免疏漏。

3. 检查访问令牌的权限

确保PERSO_ACCESS_TOKEN具备仓库读取权限:

  • 创建令牌时必须勾选read_repository权限范围。
  • 可在本地用该令牌测试API请求,验证是否能正常获取文件:
curl --header "PRIVATE-TOKEN: 你的令牌值" "https://gitlab.com/api/v4/projects/34115373/repository/files/xxx%2Dxxx%2Fxxx%2Fxxx%2Dxxx%2Fxxx%2Etxt/raw?ref=你的分支名"

4. 确认分支变量的有效性

从Wget日志看到ref=$Develop,说明${CI_COMMIT_BRANCH}变量可能未正确替换,或分支名存在大小写问题:

  • 在CI脚本中添加echo ${CI_COMMIT_BRANCH},确认变量实际值。
  • 确保分支名的拼写、大小写和仓库中的分支完全一致(比如是develop而非Develop)。

5. 验证API路径合规性

GitLab获取文件原始内容的标准API路径格式为:

GET /projects/:id/repository/files/:file_path/raw

ref是必填查询参数,用于指定文件所在的分支、标签或提交SHA,确保你的请求完全遵循该格式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 03:46:07