【问题标题】:How to long is urn life骨灰盒的寿命有多长
【发布时间】:2019-06-04 23:39:05
【问题描述】:

我的导数 Api 代码中的 urn 需要多长时间

Autodesk.Forge.Model.DynamicJsonResponse translateResponse = derivedApi.Translate(job, true); string responseUrn = translateResponse.Dictionary["urn"].ToString();

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk


    【解决方案1】:

    我猜你问的是base64 urn的字符串长度。

    这取决于您根据我的经验传递到 base64 字符串编码器的 objectId(又名对象 urn,由 PUT /buckets/:bucketKey/objects/:objectName 返回)的字符,它与您传递给 POST job 的 urn 相同Forge 模型衍生 API。通常,每个 Base64 数字正好代表来自wiki 的 6 位数据,这里是计算编码字符串长度 link 的公式:

    ((4 * n / 3) + 3) & ~3
    

    note1. n 是您的objectId 的字符串长度。

    比如urn:adsk.objects:os.object:mybucket/example.txt的长度是47,经过base64编码后,dXJuOmFkc2sub2JqZWN0czpvcy5vYmplY3Q6bXlidWNrZXQvZXhhbXBsZS50eHQ=的长度是((4 * 47 / 3) + 3) & ~3 = 64

    note2. 手动触发 Forge 翻译作业时必须删除填充字符 =,Forge 模型衍生 API 不允许这样做。这是公式:

    len of the urn = 64 - n of the padding character `=`
    

    因此,您从 API 响应中获取的 urn 的最终字符串长度为64 - 1 = 63

    参考。 https://en.wikipedia.org/wiki/Base64

    note3. 除非您致电DELETE :urn/manifest 删除已翻译的结果(也称为可视气泡),否则可视气泡将永久存储在 Forge 服务器中。尽管存储在托管 OSS 存储桶中的模型文件已被您设置的 bucket policy 删除,但您也可以使用可视气泡的 urn 访问它们。

    【讨论】:

    • 问一下autodesk viewer(derivativesApi)中生成的urn代码的可用时间
    • 嗨,我认为 note3 转换了 URN 的生命周期。
    • 我问这个问题是为了autodesk提供的api
    • 我的错,如果你问什么时候可以获得 URN,这是我的答案。通过数据管理 API forge.autodesk.com/en/docs/data/v2/reference/http/… 将模型上传到 Forge 服务器后,它将返回 objectId,也就是 urn。在提交翻译工作之前,您必须将此urn 转换为based64 urn, 。完成此操作后,您会立即收到您请求的urn。和你问的translateResponse.Dictionary["urn"].ToString();一样。
    • 链接是上面提到的PUT /buckets/:bucketKey/objects/:objectNameforge.autodesk.com/en/docs/data/v2/reference/http/…。但是,我编辑了它,它应该是一个很好的链接。
    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多