如何让桌面应用获得Google共享云端硬盘文件的下载权限?
解决Google Drive文件下载403权限错误的方案
你的错误提示appNotAuthorizedToFile核心问题是应用未获得目标文件的访问权限,以下是具体解决步骤:
1. 权限范围无需额外更新
当前配置的https://www.googleapis.com/auth/drive已经是Google Drive的全权限范围,完全满足文件下载需求,不需要新增或修改scope。但如果之前使用过更窄的权限范围,更新scope后需要重新生成授权令牌。
2. 重新生成授权令牌
- 删除脚本运行目录下的授权令牌文件(通常名为
token.json,具体取决于你的脚本中保存令牌的逻辑) - 重新运行脚本,按照提示完成账号授权流程:确保登录的是文件所有者的Google账号,并且在授权弹窗中允许所有请求的权限
3. 检查文件与共享盘的权限设置
- 确认你的Google账号是目标文件的所有者,或拥有该文件的下载/编辑权限
- 如果文件在共享云端硬盘中:
- 确保你的账号在该共享盘中拥有内容管理器及以上权限
- 在Google Drive网页版手动打开文件,验证是否能正常下载,排除文件本身的权限问题
4. 适配共享盘的脚本修改
如果文件存储在共享云端硬盘中,调用get_media时必须添加supportsAllDrives=True参数,否则无法访问共享盘内的文件,修改后的代码如下:
request = service.files().get_media(fileId=file_id, supportsAllDrives=True) file = io.BytesIO() downloader = MediaIoBaseDownload(file, request) done = False while done is False: status, done = downloader.next_chunk() print(F'Download {int(status.progress() * 100)}.')
内容的提问来源于stack exchange,提问作者simplycoding
相关产品推荐
相关产品推荐

