在OneDrive for Business上使用文件REST API创建包含内容的文件

时间:2015-09-15 15:56:36

标签: rest office365 onedrive office365api

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

我已成功使用以下方法

  1. 在根目录中创建一个空文件。
  2. 在第二次API调用中上传文件内容。
  3. 更新文件属性,将其移至第三次API调用中的正确子目录。
  4. 但是,根据文档(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"
      }
    

    我哪里错了?

1 个答案:

答案 0 :(得分:0)

OneDrive for Business文件api目前仍在增长Multi-part uploads are not yet supported

查看旧文件v1 api(from this link)的文档,当谈到多部分时,它讨论的是组合多个相同类型的请求,例如:在单个有效负载中上传3个文件,而不是上传文件并在单个请求中更新其元数据。

获取有关OneDrive Apis手表的最新信息https://dev.onedrive.com或关注https://twitter.com/OneDriveDev