请允许我解释我在做什么我在做什么

我在做什么?

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

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

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

我最近好吗?

  • 生成的访问 token
  • 创建了 session 并接收了上载URL
  • 使用PUT请求上传文件,如下所示

  • 我要上传的所选文件(文件大小:729676295字节)
    javascript - 如何使用OneDrive REST API将文件上传到OneDrive?-LMLPHP

    添加标题并发送请求并发送请求
    javascript - 如何使用OneDrive REST API将文件上传到OneDrive?-LMLPHP
    这是结果
    javascript - 如何使用OneDrive REST API将文件上传到OneDrive?-LMLPHP

    就是说最大片段大小是67108864字节,所以我更改了

    内容长度:67108864
    内容范围:字节0-67108863 / 729676295

    但是然后我收到此错误消息:声明的片段长度与提供的字节数不匹配
    javascript - 如何使用OneDrive REST API将文件上传到OneDrive?-LMLPHP

    请帮助我确定应该在内容长度和内容范围中传递什么。

    非常感谢您的关注。

    最佳答案

    最后,感谢上帝,经过两天的奋斗,我发现了问题所在。

    需要牢记一些要点

  • 您必须将文件分成相等的部分,并将其保存在某个位置,然后将每个文件分别上传到创建 session 后获得的相同URL上。
  • 内容长度必须是在所有片段上传请求中要上传的文件的字节总数。
  • 内容范围将类似于: 0- {fragmentLength-1} / {totalNumberOfBytesOfFile} (与content-length相同),然后从下一个片段开始,内容范围将被字节化{upload nextSetOfBytes-1} / {totalNumberOfBytesOfFile}

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

    附注:请勿使用成功上传片段后将收到的内容范围。

    07-24 09:50
    查看更多