items:autodesk.bim360:Document 的 GET 版本/:version_id/relationships/ref 响应中缺少存储关系

Storage relationship missing in GET versions/:version_id/relationships/ref response for items:autodesk.bim360:Document

我正在尝试下载计划数据的 pdf 文件。我是按照做的。它有效,但我遇到了一个问题。 我有一个计划文件,它似乎可以在文档上正常工作。b360.autodesk.com。但我无法为它获取存储关系。响应如下所示:jsonblob.com/5a604bf0-c969-11e9-9e84-7533c7e873da

来自我们的工程师团队:

属性“存储”仅适用于源文件(种子文件)。客户用来获取“存储”的关系是“FileToDocument”关系,它从源文件映射到拆分页面,因此它们包括要下载的存储。

对于“复制”创建的文档,将创建新关系“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”,所以我们可以搜索returned 响应来找到“relationships.storage.meta.link.href” A”并下载它。
  3. 请注意,由于“B”和“D”在不同的文件夹中,有时用户只有“D”的访问权限,而不能访问“A”和“B”,在这种情况下,步骤2 会出现return403错误,客户需要处理这种情况。