0

我正在尝试使用以下代码将 storageSize 与文件夹中的每个项目相关联:

foldersApi.getFolderContents(projectId, folderId, {}, oAuth2ThreeLegged, credentials)
  .then((response) => {
    const data = response.body.data;
    const included = response.body.included;

    const filesArray = data.filter(thing => thing.type === 'items');
    filesArray.forEach(file => {
      const version = included.find((i) => i.type === 'versions' && i.relationships.item.data.id === file.id);
      file.storageSize = version.attributes.storageSize;
    });
  })

Data Management API Fieldguide中,它声明 Version 对象只有storageSize在项目是文件时才具有属性。什么类型的项目不会是文件?

文件是否可能缺少此属性?

如果相关,则该文件夹位于 BIM 360 帐户中。

4

1 回答 1

1

在 BIM360 项目文件夹中,会有包括“文件夹”和“项目”在内的数据类型。

是的,有些情况下文件版本缺少“ storageSize ”属性,以下是我们已经知道的一些情况:

  1. 以前有一个问题,从BIM360 Docs UI上传的文件缺少这个属性,详细请检查“storageSize”在上传文件的版本端点响应中没有出现,这个问题已经记录和调查,应该根据我刚刚验证,即使文件是从 UI 上传的,我们也可以获得“storageSize”属性,请验证,我现在也在与我们的工程师确认(很快会更新您)。但是对于已经从 UI 上传的旧文件,不幸的是,该属性仍然丢失。

  2. 对于一些不是普通“种子”文件的文件,例如,它是从种子文件(模型)中提取的文档,它被设计为没有该属性,但如果您有充分的理由请求该属性,请告诉我即使是提取的文档。

  3. 如果文件已经被标记为已删除,并且如果您通过 includeHidden=true 搜索包括隐藏的所有文件,您会看到文件版本也没有“storageSize”属性,这是设计的。

如果您确实想获取存储大小但它没有在版本属性中列出,解决方法是从 OSS 获取大小,这是另一回事,如果这是您的要求,我们可以讨论。

如果您看到其他财产丢失的情况,请向我们提出。

于 2019-11-22T02:07:45.737 回答