URN Problem Forge Model Derivative API - 无效的设计参数
Posted
技术标签:
【中文标题】URN Problem Forge Model Derivative API - 无效的设计参数【英文标题】:URN Problem Forge Model Derivative API - Invalid design parameter 【发布时间】:2020-05-31 20:56:44 【问题描述】:我正在尝试翻译我之前上传到 Forge 存储桶的对象,但我遇到了参数错误。我假设 URN 是问题所在。我可以确认该对象已正确上传,因为我已经能够从存储桶中下载它。
我的代码如下:
我使用 getObjectDetails 调用来获取对象 URN 作为对象 ID:
static getObjectUrn (oAuth2TwoLegged, objectName, callback)
ObjectsApi.getObjectDetails(bucketKey, objectName, , oAuth2TwoLegged, oAuth2TwoLegged.getCredentials()).then((resp) =>
callback(null, resp.body.objectId);
, callback);
我得到了类似的东西: 瓮:adsk.objects:os.object:configtest2/f8d215f7-9ff0-474a-87b9-632ca745b39eresult.zip
我的请求正文如下所示:
let data = urn;
var buf = new Buffer(data, 'base64');
var plain_buf = buf.toString();
console.log(plain_buf);
const resolvedTemplate =
'input':
"urn": plain_buf,
"compressedUrn": true,
"rootFilename": self.rootFilename
,
'output':
"destination":
"region": "us"
,
"formats": [
"type": "svf",
"views": [
"3d"
]
]
,
;
我在编码前后尝试了几种不同的骨灰盒变体,但无济于事。我的根文件名为 PlaysetGA.iam,虽然这是一个 .zip 文件夹,所以我也尝试了文件夹内的路径,即 Playset/PlaysetGA.iam。
我查看了以下页面: https://forge.autodesk.com/en/docs/model-derivative/v2/tutorials/prepare-file-for-viewer/ 这个问题: Model Derivative API Post Job - 400 Bad Request "Invalid 'design' parameter"
这是我收到的回复: "diagnostic":"无效的'设计'参数。"
显然,我错过了一些东西。谢谢!
编辑: 我已经更新了我的 .zip 文件夹,所以我的根文件位于基本文件路径中。这是根目录:
Root folder
【问题讨论】:
【参考方案1】:目前POST job 端点在rootFilename
参数中仅支持文件names,不支持文件paths。如果您想翻译 ZIP 文件,您需要确保根文件名直接在存档的根目录中可用。
【讨论】:
感谢您的回答!我扔了一个测试 .zip 并尝试了一下,但我仍然得到相同的答案。这些是我的编码输入: "input":"urn":"���v�(n7���,���r�(������-��:m�8i�� �Z��]��7k��w�6s�����m�*","compressedUrn":true,"rootFilename":"PlaysetGA.iam","output":"destination":" region":"us","formats":["type":"svf","views":["3d"]] 我希望你能看到我的错误。我需要删除'urn:' 编码前? 嗯,URN 似乎不对。该字符串只能由字母、数字和+
和/
符号(en.wikipedia.org/wiki/Base64) 组成。你确定你正确地对原始字符串进行base64编码吗?尝试使用此网页对其进行编码:base64encode.org.
感谢您为我指明正确的方向。编码设置错误,其中一项功能已被弃用。【参考方案2】:
结果
var buf = new Buffer.from(unencoded_urn, 'ascii');
var plain_buf = buf.toString('base64');
是对从 ObjectsApi.getObjectDetails 函数中检索到 unencoded_urn 的 URN 进行编码的正确方法。
【讨论】:
以上是关于URN Problem Forge Model Derivative API - 无效的设计参数的主要内容,如果未能解决你的问题,请参考以下文章
哪个 base64 标准应该与用于 forge api 的 URN 一起使用?
如何从 revit 插件或使用 Forge api 为 Revit 文件创建 URN