调用MS Graph为SharePoint共享文档库创建上传会话报资源不存在错误
问题原因及解决方法
一、代码中的错误点
- 语法错误1:C#变量定义顺序错误,你把类型
string写在了变量名siteName后面,正确写法应该是类型在前 - 语法错误2:Graph SDK的站点访问属性是
Sites(复数形式),你代码里写的是单数Site,同时siteName后面多了一个多余的. - 格式错误:站点ID的末尾多了不必要的冒号,正确的带相对路径的站点ID格式不需要末尾的冒号
二、修正后的代码示例
// 修正变量定义顺序和站点ID格式,去掉末尾多余的冒号 private readonly string siteName = "my-dough-main.sharepoint.com:/sites/widgets"; // 确认这里的文档库ID是你从查询结果中完整复制的id字段值 private readonly string largeBlobsDocumentLibraryID = "57575757575-1ccc-4a44-b88e-5ef0fb75249b"; // 创建上传会话,修正Sites拼写和多余的点 var uploadSession = await _graphServiceClient.Sites[siteName].Drives[largeBlobsDocumentLibraryID] .ItemWithPath("thebogusfile.mp4") .CreateUploadSession(uploadProps) .Request() .PostAsync();
三、额外需要确认的配置
- 权限配置:操作非个人站点的SharePoint资源,需要确保你的应用注册配置了对应权限:如果是应用权限模式,需要配置
Sites.ReadWrite.All应用权限并由租户管理员批准;如果是委托权限模式,需要配置Sites.ReadWrite.All委托权限,且当前登录的用户拥有目标文档库的写入权限。 - 文档库ID验证:可以先直接调用查询接口
GET /sites/{siteName}/drives/{largeBlobsDocumentLibraryID}/root验证ID和路径是否正确,能正常返回根目录信息则说明基础路径没有问题。
内容的提问来源于stack exchange,提问作者dot
相关产品推荐
相关产品推荐

