一个驱动器。 MS Graph API。将文件移动到驱动器的根目录失败,并显示“提供的参数之一不可接受”

时间:2019-01-21 11:43:46

标签: microsoft-graph onedrive

我有一个将MS graph API用于onedrive的应用程序。 当我尝试将文件从某个文件夹移动到驱动器的根目录时,出现错误“提供的参数之一不可接受”。

但是相同的代码对于“单个” onedrive帐户也可以正常工作,问题仅适用于企业帐户的OneDrive。 另外,移至任何其他文件夹也可以。

我正在发送PATCH请求或移动文件。

免费提供一个驱动器,请求正文看起来像

(
    [parentReference] => 
        (
            [path] => //drives/68XXXXX7f7f7d7c/root
        )
)

这有效。但是oneDrive for business的相同代码失败

(
    [parentReference] => 
        (
            [path] => //drives/b!-0dIs3JX..TRUNCATED...0_oR2A...L0PY/root
        )
)

这将导致错误“提供的参数之一是不可接受的”

这可能是什么?有任何想法吗? 我在这里https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0

遵循文档

1 个答案:

答案 0 :(得分:1)

documentation中记录了此问题:

  

注意:将项目移动到驱动器的根目录时,您的应用程序无法使用"id:" "root"语法。您的应用程序需要提供根文件夹的实际ID供父级引用。

要检索实际ID,您需要从id对象中检索root

/drives/{drive-id}/root

这将返回与此类似的内容:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('48d31887-5fad-4d73-a9f5-3c356e68a038')/drive/root/$entity",
    "createdDateTime": "2017-07-27T02:41:36Z",
    "id": "01BYE5RZ56Y2GOVW7725BZO354PWSELRRZ",
    "lastModifiedDateTime": "2019-01-18T03:41:15Z",
    "name": "root",
    "webUrl": "https://m365x214355-my.sharepoint.com/personal/meganb_m365x214355_onmicrosoft_com/Documents",
    "size": 106330475,
    "parentReference": {
        "driveId": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd",
        "driveType": "business"
    },
    "fileSystemInfo": {
        "createdDateTime": "2017-07-27T02:41:36Z",
        "lastModifiedDateTime": "2019-01-18T03:41:15Z"
    },
    "folder": {
        "childCount": 38
    },
    "root": {}
}

使用上面的示例,移动文件时,您的路径为:

/drives/b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd/01BYE5RZ56Y2GOVW7725BZO354PWSELRRZ