首页 > 解决方案 > 发送较大文件时出现重叠范围错误

问题描述

我正在尝试通过 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。在我看来,请求是正确的,我不知道在哪里看我这边。

标签: autodesk-forge

解决方案


提供的范围对我来说看起来不错,但是此 API 需要在请求标头中包含“Session-Id”。对于以块形式上传文件的每个请求,该“会话 ID”应该是相同的。但每次都必须不一样。如果您使用相同的 'Session-Id' 上传文件(或相同的文件),则会收到该错误,因为范围将被记录两次或与先前的调用重叠。简而言之,每次启动该过程时都会生成一个新的“会话 ID”。


推荐阅读