如何使用Microsoft Graph将大文件上载到OneDrive

时间:2018-01-17 12:00:02

标签: microsoft-graph onedrive

我在creating an upload session时收到404 - File name not provided in url回复。

我的请求看起来像(没有任何正文):

POST /v1.0/drives/{drive-id}/items/{item-id}/createUploadSession
Authorization: bearer <token>
Content-Type: application/json

此问题仅适用于消费者OneDrive,OneDrive for Business正常运行。

3 个答案:

答案 0 :(得分:0)

它对我有用:-

POST - https://graph.microsoft.com/v1.0/me/drive/root:/filename.txt:/createUploadSession

In Headers:-
Content-Type : application/json
Authorization: Bearer EwCIA8l6BAAUO...9chh8cJaAg==

In Body:- 
{
  "item": {
    "@odata.type": "microsoft.graph.driveItemUploadableProperties",
    "@microsoft.graph.conflictBehavior": "rename",
    "name": "filename.txt"
  }
}

答案 1 :(得分:0)

我可以使用此URL在个人帐户中上传文件以创建存储会话:

https://graph.microsoft.com/v1.0/me/drive/items/{folderID}:/{fileID}:/createUploadSession

var config = {
  method: 'post', 
url: 'https://graph.microsoft.com/v1.0/me/drive/items/{folderID}:/{fileID}:/createUploadSession',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'Bearer
} 

响应:

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#microsoft.graph.uploadSession",
    "expirationDateTime": "2020-11-06T14:25:27.662Z",
    "nextExpectedRanges": [
        "0-"
    ],
    "uploadUrl": {url}
}

然后:

要创建文件,您需要发送PUT请求 {uploadUrl}您在响应中得到。

答案 2 :(得分:-1)

我从未碰过您的特定情况,但我怀疑这是因为OneDrive for Business与您共享的文件夹与您自己的OneDrive for Business属于同一租户。但是,当您从消费者OneDrive访问共享文件夹时,您实际上是在一个完全独立的租户中访问驱动器。

由于使用我建议使用的root:/{path}:/方法,听起来这种情况可能会导致API确定来自{itemId}的文件信息的一些问题。我希望确认这一点,以便我可以更新文档。