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

问题描述

我们正在尝试通过模型衍生 API 将“更大”的模型上传到伪造存储桶。 此模型的文件大小为 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)

网址似乎是正确的: 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