【问题标题】:URN Problem Forge Model Derivative API - Invalid design parameterURN Problem Forge Model Derivative API - 无效的设计参数
【发布时间】: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

【问题讨论】:

    标签: node.js autodesk-forge autodesk-model-derivative


    【解决方案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 进行编码的正确方法。

    【讨论】:

      猜你喜欢
      • 2022-10-21
      • 2021-10-11
      • 2020-03-01
      • 2020-01-26
      • 2020-05-28
      • 2018-01-06
      • 2021-03-28
      • 2020-06-12
      • 2019-02-09
      相关资源
      最近更新 更多