0

我一直在尝试编写一个通过 Files REST API 将文件上传到 OneDrive for Business 帐户的应用程序。

通过使用以下方法,我已经成功地做到了这一点

  1. 在根目录中创建一个空文件。
  2. 在第二个 API 调用中上传文件内容。
  3. 在第三次 API 调用中更新文件属性以将其移动到正确的子目录。

但是,根据文档(https://msdn.microsoft.com/office/office365/APi/files-rest-operations#FileoperationsUploadcontentforafileREST),我应该能够在单个 API 调用中执行此操作。

不幸的是,端点的文档不清楚有效负载应该是什么,也没有任何示例(也没有在网上找到任何示例)。

我一直在猜测标题/格式,但它们看起来类似于

POST https://{tentant}-my.sharepoint.com/_api/v1.0/me/files/{parent-id}/children/add
Content-Type: multipart/related; boundary=my_boundary

--my_boundary
Content-Type: application/json

{ path : 'my_doc.txt', nameConflict : 'abort', type : 'File' }
--my_boundary
Content-Type: application/octet-stream

{file stream}
--my_boundary--

到目前为止,我尝试过的每个组合都会返回此错误:

  {
    "code"=>"InvalidArgument",
    "message"=>"The argument is invalid, missing, or has an incorrect format"
  }

我哪里错了?

4

1 回答 1

0

OneDrive for Business 文件 api 仍在增长,目前尚不支持分段上传

查看旧文件 v1 api 的文档(来自此链接),当它谈论多部分时,它是在谈论组合相同类型的多个请求,例如在单个有效负载中上传 3 个文件,而不是上传文件和在单个请求中更新其元数据。

要获取有关 OneDrive API 的最新信息,请观看https://dev.onedrive.com或关注https://twitter.com/OneDriveDev

于 2015-09-18T17:39:18.930 回答