You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从Item Version转换Derivative URN结果不符的技术咨询

问题原因及解决方法

核心原因

你错误地直接对Item Version的Lineage URN进行了Base64编码,但Derivative服务需要的是对应版本的文件URN(File URN),两者的前缀结构不同,导致编码结果出现差异:

  • 你使用的原URN:urn:adsk.wipprod:dm.lineage:j2R5fwxfTJq9DOsvX1p9ZQ?version=7
  • 正确的编码源URN:urn:adsk.wipprod:fs.file:vf.j2R5fwxfTJq9DOsvX1p9ZQ?version=7

对比可见,需要将原URN中的dm.lineage:替换为fs.file:vf.,再进行Base64编码,才能得到正确的Derivative URN。

正确的实现代码

import base64

# 原始的Item Version Lineage URN
item_version_lineage = "urn:adsk.wipprod:dm.lineage:j2R5fwxfTJq9DOsvX1p9ZQ?version=7"
# 转换为File URN
item_version_file = item_version_lineage.replace("dm.lineage:", "fs.file:vf.")
# 进行URL安全的Base64编码(替换+为-,/为_,去掉末尾=)
urn = base64.urlsafe_b64encode(item_version_file.encode()).decode().rstrip('=')

print(f"Derivative URN: {urn}")

验证结果

运行上述代码后,输出会与你提供的正确Derivative URN一致:
dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmoyUjVmd3hmVEpxOURPc3ZYMXA5WlE_dmVyc2lvbj03

补充说明

Derivative服务的URN必须指向具体的文件资源,而Lineage URN仅用于标识版本的 lineage 关联记录,两者属于不同的资源类型,不能直接混用编码。使用base64.urlsafe_b64encode可以一步完成URL安全的编码转换,无需手动替换/为_,同时记得去掉编码结果末尾的=符号(Autodesk服务不要求保留这些填充字符)。

内容的提问来源于stack exchange,提问作者chuongmep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 09:13:13