如何使用OneDrive REST API将文件上传到OneDrive?

Vik*_*sal 7 javascript python jquery file-upload onedrive

请允许我解释一下我在做什么以及我该怎么做.

我在做什么?

我正在尝试使用其REST API源将文件上传到Onedrive:一个驱动器api文档

我正在使用OneDrive片段approch这样做,因为文件可以大到5gb或小到1kb(取决于用户)

目前,我正在使用POST-MAN Chrome扩展来调用API

我好吗?

  1. 生成的访问令牌
  2. 创建会话并收到上传网址
  3. 使用PUT请求上传文件,如下所示

我要上传的所选文件(文件大小:729676295字节) 在此输入图像描述

添加了标头并发送了请求并发送了请求 在此输入图像描述 这是结果 在此输入图像描述

它说最大片段大小是67108864字节所以我改变了值

content-length:67108864content-range:bytes 0-67108863/729676295

但后来我收到此错误消息:声明的片段长度与提供的字节数不匹配 在此输入图像描述

请帮我弄清楚我应该在内容长度和内容范围内传递什么.

非常感谢您的关注.

Vik*_*sal 6

最后,感谢上帝,经过2天的斗争,我找到了问题所在。

有一些要点你需要牢记

  1. 您必须将文件分成相等的部分并将其保存在某个位置,然后将每个文件分别上传到创建会话后获得的同一 URL 上。
  2. Content-Length必须是您在所有片段上传请求中上传的文件的总字节数。
  3. Content-Range将类似于:0-{fragmentLength-1}/{totalNumberOfBytesOfFile}(与content-length相同)并且从下一个片段开始,Content-Range将是{uploadedBytes}-{uploadedBytes+nextSetOfBytes-1}/{totalNumberOfBytesOfFile}

注意:下一组字节应该和前一组一样长。不要担心,因为最后一个片段可能会有所不同。

PS:不要使用成功上传片段后您将收到的内容范围。