2015-03-25 29 views
2

我一直在這個問題上磕磕絆絆。我試圖將位於OneDrive文件夾中的文件複製到同一帳戶內的另一個文件夾中。 (即:從用戶的根文件夾到其子文件夾之一)。在新的OneDrive API上覆制操作

OneDrive Copy API,我需要調用這個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] 

當我在之後頭Location的鏈接,我得到了異步工作狀態是:

{ 
    "operation": "ItemCopy", 
    "percentageComplete": 0, 
    "status": "notStarted", 
    "statusDescription": "Completed 0/0 files; 0/0 bytes" 
} 

的問題是,無論多少我等待並調用這個鏈接,它給出了確切的響應,它是statusnotStarted。我也嘗試使用OneDrive's API Console來重現這一點,它顯示了確切的行爲。複製空文件夾時我沒有任何問題。此問題只出現在文件上。有誰知道爲什麼?有什麼我應該做的開始異步工作?

+0

這是我們正在調查的錯誤。問題在這裏:https://github.com/OneDrive/onedrive-api-docs/issues/18 – ginach 2015-04-08 02:12:23

+0

感謝您的參考。看來問題是固定在4月11日。 – Kurotsuki 2015-04-11 17:14:52

回答

0

似乎沒有人知道這個問題。現在,我必須使用舊的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" 
} 

的事情。和文件夾。是用戶標識,後跟項目標識(項目爲file id或目標爲folder id)。請注意,這隻適用於文件。我們無法複製文件夾。如果成功,它將返回一個狀態碼Created

哦,還有......爲了使用這個API,我們需要在驗證我們的應用程序時在範圍內有wl.skydrive_update

我不會將此答案標記爲接受的答案,因爲這只是解決此問題的一種解決方法。它不能解決真正的問題。

更新每4月12日: 好的。根據this bug tracking,這個API現在應該工作了(引用的評論發佈在4月10日。所以我將這個問題標記爲已回答。