如何将 BIM 360 文件的内容作为文件流读取并将其写入另一个流

Posted

技术标签:

【中文标题】如何将 BIM 360 文件的内容作为文件流读取并将其写入另一个流【英文标题】:How to read the content of a BIM 360 file as a filestream and writes it to another stream 【发布时间】:2021-10-10 20:01:36 【问题描述】:

我正在查看此文档 AutoDesk 我能够从 BIM 360 获取文件/文件夹结构和内容,但是有没有办法可以将文件的内容作为文件流读取以将其写入不同的文件(我不想在本地下载文件)。不使用休息端点的网络核心。

【问题讨论】:

【参考方案1】:

getObject 方法(来自官方 Forge SDK)通常用于访问 OSS 数据(BIM 360 Docs 也在后台使用)确实已经返回 System.IO.Stream。因此,您应该能够在需要的任何地方流式传输传入的数据。例如,您可以将流重定向到另一个 POST 请求,如 tutorial 中所述:

    var request = new HttpRequestMessage(HttpMethod.Post, "/some/endpoint");
    using (var requestContent = new StreamContent(stream))
    
        request.Content = requestContent;
        using (var response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead))
        
            response.EnsureSuccessStatusCode();
            var content = await response.Content.ReadAsStreamAsync();
            
        

【讨论】:

我正在寻找一种方法来使用 Autodesk .net 库从 BIM 360 Docs 读取文件流,而不是使用休息端点。 BIM 360 Docs 是基于云的 SaaS 解决方案,因此如果您想从那里读取文件(流),您必须发出 HTTP 请求。 Forge SDK for .NET Core 使这更容易一些,因为它将 HTTP 请求和响应的处理包装在一个简单的方法中,例如上面提到的getObject。 有没有办法从 BIM 360 docs 下载模型文件而不是原始上传的文件?

以上是关于如何将 BIM 360 文件的内容作为文件流读取并将其写入另一个流的主要内容,如果未能解决你的问题,请参考以下文章

Autodesk Forge - 将文件作为块上传到 Node JS 中的 BIM 360 存储时出现 504 网关超时

如何通过 .NET 在 BIM 360 上创建文件夹

如何在 BIM 360 上获取模型之间的链接?

如何使用 BIM360 存储的 dwfx 文件在网页中实现模型查看器

使用 Javascript 下载 BIM360 Docs 文件

BIM 360 Docs 如何复制文件