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

使用OneDrive GRAPH API复制文件时返回400错误请求排查

解决OneDrive Graph API文件复制400 Bad Request错误

以下是可能导致你遇到400错误的原因及对应解决方案:

  • 跨Drive复制的端点使用错误
    若目标目录属于其他Drive(如团队站点文档库、其他用户的OneDrive),不能使用当前用户Drive的/users/{user-id}/drive/items/{item-id}/copy端点,必须改用通用跨Drive复制端点:

    POST https://graph.microsoft.com/v1.0/drives/{source-drive-id}/items/{source-item-id}/copy
    

    其中source-drive-id是源文件所在Drive的ID(可通过GET /users/{user-id}/drive获取)。原端点仅支持同一Drive内的复制,跨Drive调用会因上下文不匹配返回400。

  • 请求体参数存在问题

    1. 跨Drive复制时,parentReference必须同时提供正确的driveId和目标文件夹的id,注意不要截断或写错ID字符。
    2. 若目标与源文件在同一Drive,请删除driveId字段,仅保留id——多余的driveId会引发参数冲突。
    3. 建议显式指定name字段(即使与原文件名一致),避免目标目录存在同名文件时的隐式错误:
      {
        "parentReference": {
          "driveId": "b!JhgH9inZ9kajgc2OJ***",
          "id": "01Z3A2R***"
        },
        "name": "复制后的文件名.ext"
      }
      
  • 权限范围不足
    跨Drive复制需要更高权限:

    • 目标为其他用户OneDrive时,需确保应用已获得Files.ReadWrite.All(应用权限)或Files.ReadWrite(委托权限且完成用户授权)。
    • 目标为团队站点文档库时,需授予Sites.ReadWrite.All权限。
      虽然遍历、读取文件的权限能正常工作,但复制操作的权限要求更严格,请检查API权限配置是否包含上述权限,且已完成管理员同意(应用权限)或用户授权(委托权限)。
  • 请求格式错误
    确认Content-Type头严格设置为application/json,同时用JSON校验工具检查请求体的语法(如引号匹配、逗号位置),语法错误会直接触发400错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 19:32:17