新OneDrive API上的复制操作
我在这个问题上犹豫了一段时间。我正在尝试将位于OneDrive文件夹中的文件复制到同一帐户中的另一个文件夹中。(即:从用户的根文件夹到其子文件夹之一) 根据,我需要调用此REST API:新OneDrive API上的复制操作,onedrive,Onedrive,我在这个问题上犹豫了一段时间。我正在尝试将位于OneDrive文件夹中的文件复制到同一帐户中的另一个文件夹中。(即:从用户的根文件夹到其子文件夹之一) 根据,我需要调用此REST API: POST /drive/items/{item-id}/action.copy 其中,{item id}是我要复制的文件的id。对于此请求,我已使用以下内容: { "parentReference": { "id": [destination-folder-id] } }
POST /drive/items/{item-id}/action.copy
其中,{item id}
是我要复制的文件的id。对于此请求,我已使用以下内容:
{
"parentReference": {
"id": [destination-folder-id]
}
}
这个http调用工作正常。我得到了期望的结果,即:
HTTP/1.1 202 Accepted
Location: https://onedrive.com/monitor/[generated-alphanumeric-characters]
{
"operation": "ItemCopy",
"percentageComplete": 0,
"status": "notStarted",
"statusDescription": "Completed 0/0 files; 0/0 bytes"
}
当我跟踪位置
标题处的链接时,我得到了异步作业状态,即:
HTTP/1.1 202 Accepted
Location: https://onedrive.com/monitor/[generated-alphanumeric-characters]
{
"operation": "ItemCopy",
"percentageComplete": 0,
"status": "notStarted",
"statusDescription": "Completed 0/0 files; 0/0 bytes"
}
问题是,无论我等待并调用此链接多少次,它都会给出准确的响应,即
状态
为未启动
。我还尝试使用复制,它显示了精确的行为。复制空文件夹时,我没有任何问题。此问题仅发生在文件上。有人知道为什么吗?我应该做些什么来启动异步作业?似乎没有人知道这个问题。目前,我只能将旧的OneDrive API(以前的SkyDrive API)用于此复制操作,如下例所示:
COPY https://apis.live.net/v5.0/file.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!126
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"destination": "folder.a6b2a7e8f2515e5e.A6B2A7E8F2515E5E!114"
}
文件后面的东西。和文件夹。用户id后跟项目id(项目的文件id
,或目标的文件夹id)。请注意,这仅适用于文件。我们无法复制文件夹。如果成功,它将返回状态代码Created
哦,还有。。。为了使用此API,在验证我们的应用程序时,我们需要在作用域中设置wl.skydrive\u update
我不会将此答案标记为已接受的答案,因为这只是解决此问题的一种方法。它不能解决真正的问题
每4月12日更新:
好啊根据,此API现在应该可以工作了(引用的评论在4月10日发布。因此,我将此问题标记为已回答。这是一个我们正在调查的错误。您可以在这里关注问题:感谢您的引用。问题似乎在4月11日得到解决。