Autodesk集成获取RFI附件时URL含undefined及S3无效桶问题求助
解决Autodesk RFI附件URL含"undefined"及S3签名"invalid bucket"问题
问题分析
从你提供的API响应来看,附件URL的objects部分为undefined,这是触发invalid bucket错误的核心原因——Autodesk OSS的URL要求objects后必须跟有效的对象键(object key),缺失该值会导致签名服务无法识别合法的bucket/对象组合。
解决方案步骤
获取完整的附件对象信息
不要直接使用RFI接口返回的url字段,而是用附件的urn(示例中为urn:adsk.wipprod:dm.lineage:t-D-Jki9Qt6yOgQ3Au3SUQ)调用OSS的Get Object Details接口:GET https://developer.api.autodesk.com/oss/v2/objects/urn:adsk.wipprod:dm.lineage:t-D-Jki9Qt6yOgQ3Au3SUQ Headers: Authorization: Bearer <你的OAuth2令牌>该接口会返回包含
bucketKey和objectKey的完整对象元数据,格式示例:{ "bucketKey": "wip.dm.prod", "objectKey": "projects/xxx/documents/xxx.pdf", "urn": "urn:adsk.wipprod:dm.lineage:t-D-Jki9Qt6yOgQ3Au3SUQ", ... }构建合法的OSS下载URL
用获取到的bucketKey和objectKey拼接正确的URL:https://developer.api.autodesk.com/oss/v2/buckets/{bucketKey}/objects/{objectKey}重新生成S3签名
调用签名接口时,传入正确的bucketKey和objectKey参数,避免因undefined导致的bucket识别错误。同时确保你的应用OAuth2令牌包含data:read权限范围,否则会被拒绝访问OSS资源。验证附件状态
登录BIM 360/ACC网页端,检查该RFI的附件是否能正常打开。如果网页端也无法访问,说明附件上传过程可能存在异常,需要重新上传后再尝试调用API。
你提供的API响应参考
{ "results": [ { "id": "b7e0fe26-48bd-42de-b23a-043702edd251", "name": "#1 - Test RFI-202405290943.pdf", "urn": "urn:adsk.wipprod:dm.lineage:t-D-Jki9Qt6yOgQ3Au3SUQ", "urnType": "oss", "createdBy": "YUN2FW7UKAT4LDRB", "createdAt": "2024-05-30T11:06:36.000Z", "deletedBy": null, "deletedAt": null, "permittedActions": { "removeAttachment": true }, "url": "https://developer.api.autodesk.com/oss/v2/buckets/t-D-Jki9Qt6yOgQ3Au3SUQ/objects/undefined" } ], "pagination": { "limit": 10, "offset": 0, "totalResults": 1 } }
内容的提问来源于stack exchange,提问作者Moktan
相关产品推荐
相关产品推荐

