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

使用Google服务账号上传文件至Google Drive失败求助

问题分析与解决方法

针对你遇到的.NET 6上传Google Drive时出现NotFound异常的问题,结合「贡献者权限失效、免费版编辑权限正常」的情况,整理以下排查和解决步骤:

  • 确认文件夹ID的准确性
    异常信息里的1JlGO5gas321321(testId)需注意:实际使用的文件夹ID必须是纯字符串,不能包含括号、备注等额外字符。检查代码中传入的driveFolderId是否是目标文件夹的真实ID(可从Google Drive网页端URL提取,格式为https://drive.google.com/drive/folders/[此处为ID])。

  • 检查贡献者权限的实际范围
    Google Workspace中的「贡献者」权限和免费版「编辑」权限存在差异:贡献者默认仅能编辑现有文件,无法创建新文件。若目标文件夹在Workspace环境中,需将服务账号权限升级为「编辑」,或在Workspace后台调整贡献者权限设置,允许创建文件。

  • 验证服务账号的API权限范围
    确保服务账号使用的OAuth授权范围包含https://www.googleapis.com/auth/drive(全权限)或https://www.googleapis.com/auth/drive.file(基于共享的权限)。若使用drive.file,需确认目标文件夹已共享给服务账号邮箱(格式一般为[服务账号ID]@[项目ID].iam.gserviceaccount.com),且共享状态已生效(可能需等待1-2分钟)。

  • 测试服务账号对文件夹的访问性
    在代码中添加测试逻辑,验证服务账号能否读取目标文件夹:

    try
    {
        var folder = await driveService.Files.Get(driveFolderId).ExecuteAsync();
        Console.WriteLine($"Folder found: {folder.Name}");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Failed to access folder: {ex.Message}");
    }
    

    若这段代码也抛出NotFound异常,说明服务账号确实无法访问该文件夹,需重新检查共享操作:确认服务账号邮箱输入正确,共享时选择的是「服务账号」而非普通用户,且共享权限已正确应用。

  • 排查团队盘的特殊情况
    若目标文件夹属于Google团队盘(Team Drive),服务账号需被添加为团队盘成员(至少拥有「内容管理器」权限),仅共享单个文件夹可能无法生效。需在团队盘成员设置中添加服务账号,并分配合适权限。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:44