调用OneDrive Graph API上传文件遇'root:'资源未找到错误求助
解决OneDrive Graph API上传时"Resource not found for segment 'root:'"错误
核心问题:路径语法错误
你的请求路径模板存在格式错误,正确的root路径寻址格式应为drive/root:/{文件路径}:/content,而当前模板里root和文件路径之间错误使用了斜杠/,导致API将root识别为单独的资源段,后续的{文件名}:/被判定为无效路径,从而触发错误。
修正后的请求路径模板
将原模板中的root/%s:/调整为root:/%s:/,修正后的完整模板如下:
https://graph.microsoft.com/v1.0/users/%s/drive/root:/%s:/content?@microsoft.graph.conflictBehavior=rename
替换用户邮箱和文件名后,正确的示例请求链接应为:
https://graph.microsoft.com/v1.0/users/a@company.com/drive/root:/Comparison%20of%20Value%20Added%20Benefits%20and%20Services:%20Humana%20vs%20AmeriHealth.docx:/content?@microsoft.graph.conflictBehavior=rename
其他排查要点
- 确认HTTP请求方法:上传文件必须使用
PUT方法,不能用GET或POST。 - 文件名编码:确保文件名已完成URL编码(比如示例中的空格转义为
%20),避免特殊字符干扰路径解析。 - 权限验证:确认应用已获取
Files.ReadWrite.All或Sites.ReadWrite.All等足够权限,且用户授权状态有效。 - 检查Drive状态:确认目标用户的OneDrive/SharePoint Drive已正常创建,不存在禁用或未初始化的情况。
内容的提问来源于stack exchange,提问作者codex
相关产品推荐
相关产品推荐

