【发布时间】:2023-03-10 15:20:01
【问题描述】:
我有 2 个 OneDrive 帐户。 账户 A 与账户 B 共享一个文件夹。 我使用帐户 B 登录,并想通过 REST 将帐户 A 的共享文件夹复制到帐户 B 中的文件夹。
我知道 OneDrive Live SDK 文档说: https://msdn.microsoft.com/en-us/library/dn659743.aspx
复制操作的目标必须是文件夹。不能复制文件夹本身。此外,OneDrive 存储的结构使得复制操作不会在不同用户的 OneDrive 文件夹层次结构之间发生。例如,即使用户 A 可以读取用户 B 的文件,用户 A 也无法将它们复制到自己的 OneDrive 文件夹中。
我没有使用 Live API https://apis.live.net/v5.0/,而是使用 OneDrive API https://api.onedrive.com/v1.0/
当我将文件夹复制到我自己的 OneDrive 中的文件夹时,一切都很好:
POST https://api.onedrive.com/v1.0/drive/root:/test:/action.copy
Authorization: Bearer {ACCESS TOKEN}
Content-Type: application/json
Prefer: respond-async
{
"parentReference" : {"path": "/drive/root:/target"}
}
当我想通过 Fiddler 中的 REST 访问帐户 A 的文件夹时,我收到以下错误。
休息电话:
POST https://api.onedrive.com/v1.0/drives/38A2C8D42D476A18/root:/test:/action.copy
Authorization: Bearer {ACCESS TOKEN}
Content-Type: application/json
Prefer: respond-async
{
"parentReference" : {"path": "/drive/root:/target"}
}
错误响应:
{"error":{"code":"itemNotFound","message":"Item does not exist"}}
我使用的范围是:
- onedrive.readwrite
- wl.signin
- wl.skydrive
- wl.skydrive_update
- wl.contacts_skydrive
【问题讨论】: