Autodesk技术问题:无法向Photo Scene上传图片
问题排查与解决方案:Autodesk Photo-to-3D 文件上传错误(Code 19)
可能的原因及对应修复步骤
1. Access Token 权限或一致性问题
- 问题:创建Photoscene和上传文件使用的Token不一致,或者Token缺少必要权限。
- 修复:
- 确保两次请求使用同一有效AccessToken,且Token包含
data:write和data:read权限(可通过JWT解码工具验证权限范围)。 - 检查Token是否过期,若过期需重新获取。
- 确保两次请求使用同一有效AccessToken,且Token包含
2. Photoscene ID 格式或拼写错误
- 问题:手动复制ID时出现大小写错误、多字符/少字符,或使用了错误的ID。
- 修复:
- 直接从
/photoscene创建接口的返回值中提取photosceneid,避免手动复制。 - 再次调用
/photoscene/${photosceneid}/properties确认ID存在,且返回的场景状态为created。
- 直接从
3. FormData 请求格式错误
- 问题:Axios发送FormData时手动设置了
Content-Type,导致丢失boundary信息;或参数格式不符合接口要求。 - 修复:
使用以下修正后的代码发送请求,不要手动设置Content-Type: multipart/form-data,Axios会自动生成带boundary的正确请求头:let image_urls = await temporary_image_upload(files, photosceneid); const form_data = new FormData(); form_data.append("photosceneid", photosceneid); form_data.append("type", "image"); // 每个远程图片URL单独追加到file字段 image_urls.forEach(url => form_data.append("file", url)); const { data } = await axios.post( "https://developer.api.autodesk.com/photo-to-3d/v1/file", form_data, { headers: { "Authorization": `Bearer ${your_access_token}` } } );
4. 远程图片URL不可访问
- 问题:临时存储的图片URL不公开,Autodesk服务器无法拉取图片。
- 修复:
- 在浏览器中直接访问图片URL,确认能正常加载。
- 若URL包含特殊字符,需进行URL编码后再传入。
5. 端点区域不一致
- 问题:创建Photoscene时使用了特定区域的端点(如欧盟区
/eu/photoscene),但上传时使用了默认区域端点。 - 修复:
若创建场景时使用了区域端点,上传文件需对应使用同区域的/file端点,例如欧盟区为https://developer.api.autodesk.com/photo-to-3d/v1/eu/file。
内容的提问来源于stack exchange,提问作者Jousi
相关产品推荐
相关产品推荐

