调用Autodesk Data Management API上传文件时遇400 BAD_INPUT错误求助
解决Autodesk Data Management API上传图片的400 BAD_INPUT错误
你调用POST projects/:project_id/items时收到以下错误:
{ "jsonapi": { "version": "1.0" }, "errors": [ { "id": "{masked}", "status": "400", "code": "BAD_INPUT", "title": "One or more input values in the request were bad", "detail": "Request input is invalid for this operation." } ] }
结合你的请求体,重点排查以下几个容易忽略的点:
强制设置正确的请求头
必须将Content-Type设置为application/vnd.api+json,API不接受普通的application/json请求头,这是导致400错误的高频原因。校验存储对象URN的准确性
确认included字段中storage.data.id的URN是通过POST projects/:project_id/storage接口返回的完整值:- 检查Bucket名称(如
wip.dm.prod)是否与环境匹配 - 确认对象路径(
{masked}.jpg)和你上传到OSS时的路径完全一致,无拼写错误或字符遗漏
- 检查Bucket名称(如
验证父文件夹的有效性
确保parent.data.id的文件夹URN属于目标项目,且你的访问令牌拥有该文件夹的写入权限。可通过GET projects/:project_id/folders/:folder_id接口验证文件夹是否存在且可访问。检查权限范围与项目ID
访问令牌必须包含data:write和bucket:create权限,同时确认请求URL中的project_id是正确的项目ID(非URN)。简化请求体测试
尝试移除非必填字段(如extension.version),简化后的请求体示例:{ "data": { "attributes": { "displayName": "sample.jpg" }, "relationships": { "parent": { "data": { "id": "urn:adsk.wipprod:fs.folder:{masked}", "type": "folders" } }, "tip": { "data": { "id": "1", "type": "versions" } } }, "type": "items" }, "included": [ { "attributes": { "name": "sample.jpg" }, "id": "1", "relationships": { "storage": { "data": { "id": "urn:adsk.objects:os.object:wip.dm.prod/{masked}.jpg", "type": "objects" } } }, "type": "versions" } ], "jsonapi": { "version": "1.0" } }
如果以上步骤仍未解决问题,可以尝试调用API时开启调试日志,查看完整的请求和响应细节,或联系Autodesk支持获取更具体的错误详情。
内容的提问来源于stack exchange,提问作者Swiftness
相关产品推荐
相关产品推荐

