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

调用GitLab REST API拉取文件后base64解码报Invalid character in input stream

报错诱因及解决方法

核心报错诱因

  • jq默认提取字符串字段时会自动用双引号包裹结果,双引号不属于base64编码的合法字符,直接传入解码工具就会触发「Invalid character in input stream」报错。
  • 你使用的curl命令存在语法缺陷:请求URL末尾缺少闭合双引号,同时GitLab仓库文件API强制要求传入ref参数(对应分支、标签或提交哈希),缺少该参数会返回错误响应,返回的JSON无合法base64编码的content字段。
  • 部分系统的base64解码工具对输入中的换行、空白字符兼容性较差,若content字段返回的base64内容带换行也可能触发报错。

解决方案

按照以下要求调整命令即可:

  1. 给jq添加-r参数,输出无引号包裹的原始字符串
  2. 补全curl命令的闭合引号,在请求URL中添加ref参数指定文件所在的目标分支
  3. 若使用macOS系统,将解码命令base64 -d替换为base64 -D适配系统差异

修正后的参考命令如下:

curl --request GET --header "PRIVATE-TOKEN: ${TOKEN}" "https://gitlab.example.com/api/v4/projects/123/repository/files/README%2Emd?ref=main" | jq -r '.content' | base64 -d

上述命令中ref=main请替换为你实际的目标分支名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:57:03