GET /sites/{site-id}/drive/root:/{item-path}调用失败,返回itemNotFound错误
针对你遇到的——按文件路径调用Graph API返回itemNotFound但搜索API能正常找到文件、且排除权限问题的情况,可尝试以下排查和解决步骤:
1. 确认文件的实际完整路径
搜索API返回的文件可能不在你指定的Shared Documents根目录下,可通过文件ID调用API获取完整路径:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/0124G6SZYNCIZEZOC6DVELGBOBQTHBRUUG
查看响应中的parentReference.path字段,比如若返回/drive/root:/Shared Documents/SubFolder/testfile.docx,说明原请求的路径缺少子文件夹层级,需修正路径后重新调用。
2. 检查URL编码与大小写一致性
- 确认路径中的特殊字符(如空格)已正确编码,
Shared%20Documents是正确的,但如果路径中存在其他特殊字符(如&、#)需确保已转义; - 部分环境下Graph API对路径大小写敏感,可尝试将路径中的文件夹/文件名改为与实际存储完全一致的大小写(比如
shared documents改为Shared Documents)后重试。
3. 验证目标Drive的正确性
站点可能存在多个文档库(Drive),原请求默认使用站点的主Drive,但文件可能存储在其他Drive中:
- 列出站点所有Drive:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives
- 查看搜索返回文件的
parentReference.driveId,确认是否与原请求中使用的Drive ID一致; - 若不一致,修正API请求为对应Drive的路径:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drives/{drive-id}/root:/Shared%20Documents/testfile.docx
4. 临时恢复方案:使用文件ID直接访问
为快速恢复自动文件生成系统,可直接使用搜索API获取的文件ID调用API:
GET https://graph.microsoft.com/v1.0/sites/{site-id}/drive/items/0124G6SZYNCIZEZOC6DVELGBOBQTHBRUUG
此方式不受路径影响,可直接定位到目标文件。
内容的提问来源于stack exchange,提问作者Angel
相关产品推荐
相关产品推荐

