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

How to upload a file to OneDrive using OneDrive REST API?

请允许我解释一下我在做什么以及如何我在做什么。

我在做什么?

我正在尝试使用其 REST 将文件上传到 Onedrive API 资料来源:one drive api documentation

我正在使用 OneDrive 片段方法来执行此操作,因为文件可以大到 5gb 或小到 1kb(取决于用户)

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

我最近怎么样?

  1. 生成的访问令牌
  2. 已创建 Session 并收到上传 url
  3. 正在使用 PUT 请求上传文件,如下所示

已选择我要上传的文件(文件大小:729676295字节)

添加了headers并发送了请求并发送了请求 这是结果

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

的值

content-length : 67108864content-range:字节 0-67108863/729676295

但随后我收到此错误消息:声明的片段长度与提供的字节数不匹配

请帮我弄清楚我应该在 content-length 和 content-range 中传递什么。

非常感谢您的关注。

终于感谢大神,折腾了2天终于找到问题所在了

有几点需要注意

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

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

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

{totalNumberOfBytesOfFile}content-length 不同;

Content-Length 是当前片段的字节。

图片是上传 4917 字节文件的示例。