Autodesk Forge Viewer示例报错:Legacy endpoint is deprecated及对象创建失败求助
解决Autodesk Forge Viewer上传文件时的"Legacy endpoint is deprecated"错误
排查与修复步骤:
- 确认Bucket创建接口版本:务必使用
/oss/v2/buckets接口创建Bucket,而非旧版的/oss/v1/buckets。很多入门示例默认内嵌旧端点,即使你更新了文件上传、模型转换的接口,Bucket创建环节可能仍在调用旧地址。 - 检查OAuth 2.0令牌权限:获取令牌时,scope参数必须包含
bucket:create和data:write权限,完整scope应为bucket:create bucket:read data:write data:read。权限不足会触发异常,可能被旧错误信息误导。 - 验证Bucket命名规则:Bucket名称需全局唯一,且只能包含小写字母、数字、
-、_、.,不能有大写或特殊字符。命名不符合规则或重复时,也可能抛出类似错误。 - 全局搜索代码中的旧端点:遍历所有API请求URL,确保没有遗漏的
/oss/v1或非/modelderivative/v2/designdata的旧路径。 - 打印完整API响应:不要只捕获错误消息,打印请求的完整响应(包括status code和response body),里面会有更精准的错误原因。比如在catch块中用
console.error('详情:', error.response.data)输出完整信息。 - 确认请求头设置:所有API请求需指定
Content-Type: application/json,避免因头信息缺失导致的兼容性问题。
Node.js代码示例(创建Bucket的正确写法):
const axios = require('axios'); async function createBucket(bucketKey, accessToken) { try { const res = await axios.post( 'https://developer.api.autodesk.com/oss/v2/buckets', { bucketKey: bucketKey, policyKey: 'transient' // 根据需求选transient/temporary/persistent }, { headers: { 'Authorization': `Bearer ${accessToken}`, 'Content-Type': 'application/json' } } ); return res.data; } catch (err) { console.error('Bucket创建失败:', err.response.data); throw err; } }
额外注意事项:
- 登录Forge开发者控制台,确认你的应用已启用Data Management和Model Derivative API权限。
- 如果使用第三方SDK,确保SDK版本为最新,旧版SDK可能默认调用废弃端点。
内容的提问来源于stack exchange,提问作者Robin089
相关产品推荐
相关产品推荐

