Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
新OneDrive API上的复制操作_Onedrive - Fatal编程技术网

新OneDrive API上的复制操作

新OneDrive API上的复制操作,onedrive,Onedrive,我在这个问题上犹豫了一段时间。我正在尝试将位于OneDrive文件夹中的文件复制到同一帐户中的另一个文件夹中。(即:从用户的根文件夹到其子文件夹之一) 根据,我需要调用此REST API: POST /drive/items/{item-id}/action.copy 其中,{item id}是我要复制的文件的id。对于此请求,我已使用以下内容: { "parentReference": { "id": [destination-folder-id] } }

我在这个问题上犹豫了一段时间。我正在尝试将位于OneDrive文件夹中的文件复制到同一帐户中的另一个文件夹中。(即:从用户的根文件夹到其子文件夹之一)

根据,我需要调用此REST API:

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日得到解决。