如何通过Autodesk数据管理API获取复合设计的真实大小
获取Autodesk Composite Design资源的真实大小
你提到的获取文件夹内容的API确实只会返回Composite Design主文件的storageSize——这是因为该API的versions实体默认仅展示主文件的存储信息,而Composite Design作为包含多个关联文件的打包资源,实际下载的压缩包大小是所有关联文件的总和(加上压缩损耗)。
要获取该资源的真实大小,有两种可行方案:
方案1:计算所有关联文件的存储大小总和
Composite Design版本的关联文件信息可以通过Versions API的关联数据获取:
- 调用
GET /projects/{project_id}/versions/{version_id},请求中加入include=included参数,响应会返回该Composite Design包含的所有关联文件的版本信息。 - 遍历返回的
included数组,将每个文件版本的attributes.storageSize相加,得到的总和就是所有文件的原始总大小,这个数值和实际下载的压缩包大小非常接近(压缩后的大小会略小一些)。
针对你提供的示例版本ID,请求格式大致如下:
GET /projects/{project_id}/versions/urn:adsk.wipprod:fs.file:vf.wuknEcO8TjiWoHMfXUwuPQ?version=1?include=included
方案2:通过下载链接获取真实压缩包大小
如果你需要精确的压缩包下载大小,可以借助下载链接API获取响应头中的文件长度:
- 调用
GET /projects/{project_id}/items/{item_id}/download(item_id为Composite Design对应的项目项ID)。 - 在响应的HTTP头中,
Content-Length字段的值就是该压缩包的真实字节大小,这个数值和你实际下载的文件大小完全一致。
需要注意的是,这个API返回的下载链接是临时有效的,但Content-Length头信息会直接给出准确大小,无需实际下载文件。
内容的提问来源于stack exchange,提问作者Giuseppe Signorelli
相关产品推荐
相关产品推荐

