Autodesk Platform Services文件上传至ACC云异常及API方法疑问
问题解答
一、API方法歧义说明
uploadObject方法确实已被官方废弃,uploadResources是替代它的批量上传方法,用于一次性上传多个文件到OSS存储桶。由于Node.js客户端的文档是自动生成的,存在滞后于源码更新的情况,导致该方法未出现在公开文档中,你使用uploadResources本身的调用方式是正确的。
二、ACC文件夹看不到文件的原因及解决步骤
你当前的代码仅完成了文件上传到OSS存储桶的步骤,但ACC的项目文件系统需要将OSS中的对象与项目文件夹建立关联,才能在ACC界面中展示。具体问题和修复流程如下:
核心原因
ACC(Autodesk Construction Cloud)的文件管理依赖Data Management API的数据模型,OSS存储桶只是底层存储,上传到OSS的文件不会自动同步到ACC项目的文件夹视图中,必须手动关联。
完整上传流程
上传文件到OSS(你已完成)
你的uploadResources调用返回200,说明文件已成功上传到指定bucket,这一步没问题。关联OSS对象到ACC项目文件夹
需要调用Data Management API的接口,将已上传的OSS对象关联到目标ACC项目的文件夹中。示例代码如下(需确保你的认证客户端包含data:write和data:create权限):const { ProjectsApi } = require('forge-apis'); // 假设你已有项目ID、文件夹ID等信息 const projectId = 'your-acc-project-id'; const folderId = 'target-folder-id-in-acc'; const objectId = response.body[0].objectId; // 从uploadResources的响应中获取上传对象ID // 创建项目文件条目 await new ProjectsApi().createItem( projectId, { jsonapi: { version: '1.0' }, data: { type: 'items', attributes: { displayName: objectKey, // 文件名 extension: { type: 'items:autodesk.bim360:File', version: '1.0', data: {} } }, relationships: { parent: { data: { type: 'folders', id: folderId } }, storage: { data: { type: 'objects', id: objectId } } } } }, {}, internalAuthClient, req.internalOAuthToken );
额外注意事项
- 确保你使用的
bucketKey是ACC项目对应的存储桶(格式通常为wip.dm.prod.<project-id>),而非普通OSS bucket。 - 认证令牌需要包含
data:write、data:create以及bucket:create(如果涉及bucket操作)的权限范围。
内容的提问来源于stack exchange,提问作者FunkyPenguin
相关产品推荐
相关产品推荐

