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

使用Microsoft Graph API创建OneDrive文档版本时遇400错误求助

问题分析与解决方案

操作错误点

你调用的POST /v1.0/drives/{drive-id}/items/{item-id}/versions端点并非用于创建文件新版本,这个API的作用是恢复现有版本或处理草稿版本提交,并不接受你传入的content.sourceUrl格式请求体,这是导致400错误的核心原因。

正确创建OneDrive文件版本的方法

OneDrive的版本历史基于文件内容变更自动生成,只要替换文件内容,系统就会自动创建新版本(前提是目标文件所在的库/文件夹已开启版本历史功能,个人OneDrive默认开启,商业版需确认管理员设置)。正确的API调用方式如下:

方式1:直接上传新内容(小文件)

使用PUT请求替换文件内容,触发新版本创建:

curl -X PUT 'https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{item-id}/content' \
  -H 'Authorization: Bearer {access-token}' \
  -H 'Content-Type: text/plain' \
  --data 'Hello World Updated!'

方式2:通过外部URL导入内容创建版本

如果内容存储在其他可访问的URL,可使用PUT请求并指定@microsoft.graph.sourceUrl参数:

curl -X PUT 'https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{item-id}/content' \
  -H 'Authorization: Bearer {access-token}' \
  -H 'Content-Type: application/json' \
  --data '{
    "@microsoft.graph.sourceUrl": "https://example.com/updated-file.txt"
  }'

方式3:分块上传(大文件)

若文件超过4MB,建议使用分块上传流程,完成后同样会生成新版本:

  1. 创建上传会话:POST /drives/{drive-id}/items/{item-id}/createUploadSession
  2. 分块上传文件内容
  3. 完成上传会话

额外说明

  • 若需确认版本是否创建成功,可调用GET /v1.0/drives/{drive-id}/items/{item-id}/versions获取版本列表,检查最新版本条目。
  • 商业版OneDrive可通过库设置调整版本保留策略,确保版本历史功能正常启用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 01:30:10