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

Google Drive API授权后返回404错误,服务器适配问题求助

Google Drive API 404错误及服务器部署解决方案

一、先排查404错误的直接原因

  • 文件ID或权限问题:确认file_id完全正确,目标文件存在,且授权账号已获取该文件的读取权限(如果是共享文件,要确保账号被添加为协作者)。
  • Export接口使用限制:files().export_media()仅支持Google原生格式文件(如Google Docs、Sheets、Slides),如果目标文件是普通docx、PDF等非原生格式,必须改用files().get_media()下载,而非export。
  • 代码语法问题:你提供的代码中export_media调用未闭合括号且缺少execute()执行方法,补全后示例:
byteData = service.files().export_media(
    fileId = file_id,
    mimeType = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
).execute()

二、服务器部署的授权配置方案

本地开发依赖localhost回调的OAuth授权在服务器上无法运行,需改用以下两种方案:

方案1:使用服务账号(推荐)

  • 登录Google云控制台,创建服务账号并下载其密钥JSON文件。
  • 将目标Drive文件共享给服务账号密钥中的client_email邮箱,赋予读取权限。
  • 修改认证逻辑,用服务账号密钥初始化API服务:
from google.oauth2 import service_account
from googleapiclient.discovery import build

SCOPES = ['https://www.googleapis.com/auth/drive.readonly']
SERVICE_ACCOUNT_FILE = '你的服务账号密钥文件.json'

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('drive', 'v3', credentials=credentials)

方案2:持久化刷新令牌

  • 在本地完成OAuth授权流程,获取包含refresh_token的token.json文件(授权后自动生成)。
  • 将token.json上传至服务器,修改Create_Service逻辑,让程序读取该文件自动用refresh_token刷新授权,无需手动重复授权。
  • 确保服务器上的token.json文件权限正确,程序可正常读取。

三、额外注意事项

  • 确认服务器网络可正常访问Google API,无防火墙或代理拦截请求。
  • 检查Google云控制台中Drive API已启用,未启用会导致404或权限报错。
  • 尽量缩小权限范围,仅需读取文件则用drive.readonly,避免使用过大的drive权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:32:21