我正在尝试下载计划数据的pdf文件。我正在根据如何通过 bim360 api 或 sdk 下载计划 pdf 文件?.它有效,但我遇到了一个问题。 我有一个计划文件,似乎可以在 docs.b360.autodesk.com 上正常工作。但是我无法为它获取存储关系。响应如下所示:jsonblob.com/5a604bf0-c969-11e9-9e84-7533c7e873da
来自我们的工程师团队:
属性">存储"仅适用于源文件(种子文件(。客户用来获取"存储"的关系是">FileToDocument"关系,它从源文件映射到拆分页面,以便它们包含要下载的存储。
对于由"copy"创建的文档,将创建新的关系"CopyDocument",该关系将复制的源(拆分页面(映射到复制的文档,而不是"文件到文档"。
如果要下载拆分页面,则 API(称为导出(为: https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-projects-project_id-versions-version_id-exports-POST/要检查导出作业的状态,API 为: https://forge.autodesk.com/en/docs/bim360/v1/reference/http/document-management-projects-project_id-versions-version_id-exports-export_id-GET/
如果要下载"副本"文档的源文件,则需要遍历关系以查找源文件并获取存储。
例如,如果我们将文件"A"上传到计划,则将其拆分为文档"B"和"C",然后将"B"复制到另一个文件夹,新创建的文档为"D"。"D"的关系是:
[{
"fromId": "B",
"toId": "D",
"extension": {
"type": "derived:autodesk.bim360:CopyDocument"
}
}]
而"B"的关系是:
[{
"fromId": "B",
"toId": "D",
"extension": {
"type": "derived:autodesk.bim360:CopyDocument"
}
},
{
"fromId": "A",
"toId": "B",
"extension": {
"type": "derived:autodesk.bim360:FileToDocument"
}
}]
因此,下载"D"源文件的步骤是:
- 获取"D"的关系。"D"的关系没有"FileToDocument",但有"CopyDocument",我们需要使用"CopyDocument"的"fromId"-"B"来再次获取关系。
- 这次 "B" 的关系有 "FileToDocument",它的 "fromId" 是 "A",所以我们可以搜索返回的响应找到 "A" 的 "relations.storage.meta.link.href" 并下载它。 请注意,由于"B"和"D">
- 在不同的文件夹中,有时用户只有对"D"的访问权限而无法访问"A"和"B",在这种情况下,步骤2会返回403错误,客户客户端需要处理这种情况。