首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模型派生:获取特定对象的属性失败,返回404

模型派生:获取特定对象的属性失败,返回404
EN

Stack Overflow用户
提问于 2021-03-03 04:53:03
回答 1查看 117关注 0票数 1

我在使用Autodesk Forge模型衍生API时遇到了一个奇怪的问题。在使用:urn/metadata/:guid/properties端点获取对象的属性时,我有时会得到包含以下文本的404响应:

{"diagnostic":"Model should be translated to SVF first"}

模型被上传为IFC,并且它被明确地转换为SVF。

下面是一个失败的请求示例:

代码语言:javascript
运行
复制
curl -H "Authorization: Bearer <token>" https://developer.api.autodesk.com/modelderivative/v2/designdata/dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6OTliYzRhNTUtNzM5My00ZTc0LTg5YjEtMTE4ODNhYWNjYjFhLnByb2plY3RzLmFwcC5pbWVyc28uY29tLzIwMjEtMDEtMjFUMTE6MjY6MDMlMkZESUhfUklCLmlmYw/metadata/29a39a8b-7ff3-42c3-9dfe-471e3ae0677d/properties?objectid=889

我发现,如果我发送相同的请求,但没有指定objectid,似乎会修复一些问题。在那之后,像上面这样的新请求就会成功。然而,我不知道像这样的“修复”会持续多久,我不希望每次都通过这个例程来获得单个对象的属性。

谁能帮上忙?

EN

回答 1

Stack Overflow用户

发布于 2021-03-03 17:58:24

我无法重现这个问题,但这里有一些与此端点相关的信息。

因为属性数据库可能非常大,所以这个端点通常会返回202HTTP代码,告诉您服务器正在内存中加载sqlLite3数据库。当您获得202响应时,这意味着您需要稍后再回来并再次询问。

响应202的正文示例

代码语言:javascript
运行
复制
{
    "result": "success"
}

一旦加载了数据库,它就会在内存中停留一段时间,这取决于您在这些端点上进行的调用次数,然后服务器会从内存中丢弃该数据库(它至少会在内存中停留几分钟)。

如果资源非常大,则可能需要使用forceget参数。有关该参数的更多详细信息,请查看文档。

sqlLite数据库是在SVF生产过程中最后构建的,最后发布到服务器上。设计文件的属性以两种格式提取:也称为json (json.gz)和sqlLite (sdb/db)。Autodesk Viewer仅使用json格式,但其他系统可能更喜欢使用sqlLite。当您的代码在客户端浏览器中执行时,json方法使其更容易执行。我不知道发生了什么,但我相信sqlLite数据库还没有完全发布到S3上,因此不可用。我很有兴趣跟进这个问题,以了解您遇到问题的确切情况-请在autodesk.com与我联系

附注:我得到了一个发布在here上的旧示例,用于帮助读取属性,最近我决定将其重写为here,但在json.gz propertyServer组件即将完成时,它还没有完全完成。

3月4日更新

在与g-birk交谈后,我能够重现这个问题。EMEA存储服务器上发布的型号会发生这种情况。g-birk的变通办法是请求树的方法,而Autodesk工程人员则解决了这个问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66446973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档