将大文件上传到 OneDrive 共享文件夹问题(createUploadSession 错误)

Aga*_*gat 3 api rest onedrive

尽管微软官方文档相当丰富,但我找不到任何关于如何将大文件上传到共享文件夹(而不是我的驱动器)的详细信息。

我已经按照文档进行操作:

POST /drives/{driveId}/items/{itemId}/createUploadSession

{"Item":{"@microsoft.graph.conflictBehavior":"replace","name":"20200310-155252-700.jpg"}}
Run Code Online (Sandbox Code Playgroud)

其中 itemId 是我尝试将该文件上传到的文件夹 ID。

但是,它会返回 400 Bad Request 错误Name from path does not match name from body消息。

但是文档中提供的请求路径根本不需要传递文件名!

我有点怀疑 itemId 应该是驱动器上的现有项目(甚至不在文件夹内),而不是用于创建该文件的文件夹 ID,但是 a)我对此不确定,b)这怎么可能在上传完成之前有一个没有任何内容的空文件(再次,如果我对b)的看法是正确的)。

我至少遵循正确的方向吗?谢谢!

Aga*_*gat 6

这是因为 Microsoft 的 OneDrive Api 官方文档更新不佳。

正确的 url 必须如下所示:

$"{baseUrl}/drives/{drive}/items/{itemId}:/{fileName}:/createUploadSession"