GET 版本/:version_id/关系/引用响应中缺少存储关系:项:autodesk.bim360:文档



我正在尝试下载计划数据的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"源文件的步骤是:

  1. 获取"D"的关系。"D"的关系没有"FileToDocument",但有"CopyDocument",我们需要使用"CopyDocument"的"fromId"-"B"来再次获取关系。
  2. 这次 "B" 的关系有 "FileToDocument",它的 "fromId" 是 "A",所以我们可以搜索返回的响应找到 "A" 的 "relations.storage.meta.link.href" 并下载它。
  3. 请注意,由于"B"和"D">
  4. 在不同的文件夹中,有时用户只有对"D"的访问权限而无法访问"A"和"B",在这种情况下,步骤2会返回403错误,客户客户端需要处理这种情况。

最新更新