Autodesk Forge - 下载的项目名称不同

Posted

技术标签:

【中文标题】Autodesk Forge - 下载的项目名称不同【英文标题】:Autodesk Forge - downloaded item has a different name 【发布时间】:2021-10-24 06:35:10 【问题描述】:

我正在使用 https://developer.api.autodesk.com/oss/v2/buckets/:bucketKey/objects/:objectName 端点从 BIM 360 下载项目(Revit 模型)。使用 this 文档。文件下载正常,内容正确,但是,下载后,文件名是文件的 GUID (4aac519c-ab91-42a5-85c5-f023c82d4736.rvt),而不是文件的“显示名称”(我的文件。 rvt) .我得到的文件名是这样的:

var headervalue = resp.Headers.FirstOrDefault(x => x.Name == "Content-Disposition")?.Value;
string contentDispositionString = Convert.ToString(headervalue);
ContentDisposition contentDisposition = new ContentDisposition(contentDispositionString);
fileName = contentDisposition.FileName;

我在另一个项目中使用了相同的方法,并且效果很好。文件的内容和文件名都正确。但是不知何故,端点在这个项目上的行为有所不同。

任何指针这里可能是什么问题?

【问题讨论】:

【参考方案1】:

我不确定文档中的某处是否提到了这一点,但我认为您不应该为此依赖响应标头的 Content-Disposition。如果您想为正在下载的任何对象获取文件名,您应该始终从实际项目记录中获取它(在您链接到的教程的第 3 步中获得)。

【讨论】:

我先这样做了。但是,当 rvt 文件中包含同样位于 BIM 360 文档中的 rvt 链接时,它就不起作用了。在这种情况下,您下载的文件将是一个 zip 文件,其中包含您请求的主要项目及其 rvt 链接。我不知道文件是 rvt 还是 zip,所以我从 Content-Disposition 获取实际文件名。 我明白了。我仍然相信您应该能够从 JSON API 响应中找出您要下载的文件是否有其他设计链接。尝试探索来自 forge.autodesk.com/en/docs/data/v2/reference/http/… 端点的响应,并查看它是否提供有关 Revit 文件是否有其他文件链接到它的附加索引。

以上是关于Autodesk Forge - 下载的项目名称不同的主要内容,如果未能解决你的问题,请参考以下文章

Autodesk Forge 数据管理 - 对象 ID 与对象名称与对象键

Autodesk Forge Data Manager Api 重命名项目

Autodesk Forge - 使用 curl 下载文件

Autodesk Forge API:“这个项目不存在。”错误

从 Autodesk Forge 3D 查看器下载文件

请求 Autodesk Forge、Reality Capture API 下载链接的错误消息