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

Google Drive v3可恢复上传始终返回404错误求助

排查Google Drive v3可恢复上传404错误的关键点

我来帮你捋捋这个404的问题——毕竟手动用HttpClient实现可恢复上传,确实比SDK容易踩坑,尤其是会话有效性这块。结合你说的“刚创建完会话就报错”的情况,给你几个重点排查方向:

  • 严格复用会话创建返回的URL
    创建可恢复会话时,响应的Location头里的URL是唯一且完整的会话标识,必须原封不动地用在后续上传请求里。别手动修改、拼接参数,也别让HttpClient自动做重定向(有些默认配置会自动重定向,但会话URL带唯一token,重定向后可能失效)。要确认你拿到的Location没有被截断、转义错误,比如有没有把%2F这类编码字符手动转成了/?

  • 检查上传请求的核心头信息
    这几个头错一个都可能导致404:

    • Content-Range:格式必须是bytes start-end/total,比如bytes 0-1023/5242880,要确保start、end和你当前上传的字节段完全匹配,total是文件的总大小(不能填*,除非是最后一段上传)。
    • Authorization:必须和创建会话时用的是同一个服务账号token,别不小心用了过期的或者其他凭证。
    • Content-Length:要和你当前上传的字节数完全一致,比如你传的是0-1023字节,那Content-Length就是1024。
  • 确认会话创建与上传的时间差
    虽然你说“刚创建完会话”,但要排查代码里是不是在拿到Location后做了其他耗时操作?比如文件读取、线程等待之类的,导致会话超过了Drive API的默认超时(一般会话创建后几分钟内有效,但极端情况比如网络延迟也可能触发)。可以试一下创建会话后立刻发起上传请求,排除时间差问题。

  • 验证服务账号的权限细节
    虽然SDK里能正常操作,但手动调用API时要确认:

    • 权限范围足够:可恢复上传需要https://www.googleapis.com/auth/drive(或更细的编辑类权限),别用了只读权限。
    • 目标文件夹授权正确:如果是上传到特定文件夹,要确保服务账号被授予了该文件夹的编辑权限,只读权限会导致上传时会话失效。
  • 打印完整的请求/响应日志
    建议开启HttpClient的详细日志,把创建会话和上传请求的所有头、URL、响应内容都打出来。比如看看创建会话的响应里Location是不是正确,上传请求的URL是不是和这个Location完全一致,有没有额外的参数或者缺失。很多时候日志里能发现肉眼忽略的拼写错误或者头信息问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:13:52