当我们尝试将对象放入 Forge 存储桶时收到 408 请求超时

Receiving 408 request timeout when we try to put an object to a Forge bucket

我们正在尝试通过模型导数 API 将 'bigger' 模型上传到锻造桶。 此模型的文件大小为 956MB,扩展名为 .nwd

const uploadPromise = http(uploadUrl(socketId), {
    method: 'PUT',
    data: Body,
    headers: {
        'Content-Type': 'application/octet-stream',
        Authorization: `Bearer ${Forge.urns[socketId].autoDeskToken}`,
    },
    maxContentLength: 1024 * 1024 * 1024,
    timeout: 600000,
})

{ Error: Request failed with status code 408
  at createError (/nodejs/node_modules/axios/lib/core/createError.js:16:15)
  at settle (/nodejs/node_modules/axios/lib/core/settle.js:18:12)
  at IncomingMessage.handleStreamEnd (/nodejs/node_modules/axios/lib/adapters/http.js:202:11)
  at IncomingMessage.emit (events.js:203:15)
  at IncomingMessage.EventEmitter.emit (domain.js:448:20)
  at endReadableNT (_stream_readable.js:1145:12)
  at process._tickCallback (internal/process/next_tick.js:63:19)

url 似乎是正确的: https://developer.api.autodesk.com/oss/v2/buckets/-BUCKETNAME-/objects/-filename-.nwd

这个错误可能是什么原因?

这是客户遇到的问题。

亲切的问候, 托马斯

有趣的是,错误代码 408 未在端点的文档中列出:https://forge.autodesk.com/en/docs/data/v2/reference/http/buckets-:bucketKey-objects-:objectName-PUT。错误代码很可能来自某个中间层 (Apigee),而不是直接来自 Forge 服务器。

但是,要上传这么大的文件,我强烈建议使用数据管理服务中提供的“可续传上传”功能。您可以在我的 TypeScript 代码中找到可续传上传如何工作的示例:https://github.com/petrbroz/vscode-forge-tools/blob/develop/src/commands/data-management.ts#L230-L272.