autodesk-forge - 发送较大文件时出现重叠范围错误
问题描述
我正在尝试通过 4M 块上传 ~47M 文件,https://developer.api.autodesk.com/oss/v2/buckets/:bucketKey/objects/:objectName/resumable
但不断收到 416 并出现“重叠范围”错误。
块与Content-Range
标头一起发送,如下所示:
"bytes: 0-4194303/47992832"
"bytes: 4194304-8388607/47992832"
"bytes: 8388608-12582911/47992832"
"bytes: 12582912-16777215/47992832"
"bytes: 16777216-20971519/47992832"
"bytes: 20971520-25165823/47992832"
"bytes: 25165824-29360127/47992832"
"bytes: 29360128-33554431/47992832"
"bytes: 33554432-37748735/47992832"
"bytes: 37748736-41943039/47992832"
"bytes: 41943040-46137343/47992832"
"bytes: 46137344-47992831/47992832"
每个块Content-Length
是 4194304,但最后一个是 1855488。在我看来,请求是正确的,我不知道在哪里看我这边。
解决方案
提供的范围对我来说看起来不错,但是此 API 需要在请求标头中包含“Session-Id”。对于以块形式上传文件的每个请求,该“会话 ID”应该是相同的。但每次都必须不一样。如果您使用相同的 'Session-Id' 上传文件(或相同的文件),则会收到该错误,因为范围将被记录两次或与先前的调用重叠。简而言之,每次启动该过程时都会生成一个新的“会话 ID”。
推荐阅读
- pattern-matching - Ocaml 从列表中删除元素
- javascript - D3使用滑块动态更新分层边缘捆绑
- android - JSON解析单个数组和数组名称
- javascript - 如何在使用 Java 脚本的 cosmos DB 查询中包含参数!=“”
- c++ - 何时将其用于 lambda 中的类函数
- pyspark - PySpark:计算平面图中的每个元素
- python - 如何在 Python 中为 Discord 机器人命令添加冷却时间?
- python - Pandas:在 pivot_table 中,如何自定义填充缺失值?
- cloudsim - CloudSim Plus中虚拟机的功耗(模拟工具)
- actions-on-google - 确保返回用户给予许可