Convert Urn from item version have problem

32 Views Asked by At

I'm try to convert from item version get derivative urn but may be have something wrong. I know we are using base64 to encoder, but when I'm try convert it have some missmatch:

Example: I have item version is : urn:adsk.wipprod:dm.lineage:j2R5fwxfTJq9DOsvX1p9ZQ?version=7

And I'm try to convert it to get derivative urn` by use python code :

import base64
item_version = "urn:adsk.wipprod:dm.lineage:j2R5fwxfTJq9DOsvX1p9ZQ?version=7"
urn = base64.b64encode(item_version.encode()).decode()
# change character "/" to "_
urn = urn.replace("/", "_")
print(f"Derivative URN Of Version {version}: {urn}")

and the output is:

dXJuOmFkc2sud2lwcHJvZDpkbS5saW5lYWdlOmoyUjVmd3hmVEpxOURPc3ZYMXA5WlE_dmVyc2lvbj03

But actually correct urn is :

dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmoyUjVmd3hmVEpxOURPc3ZYMXA5WlE_dmVyc2lvbj03

So it have diffrence at :

dXJuOmFkc2sud2lwcHJvZDpkbS5saW5lYWdlOmoyUjVmd3hmVEpxOURPc3ZYMXA5WlE_dmVyc2lvbj03 and
dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLmoyUjVmd3hmVEpxOURPc3ZYMXA5WlE_dmVyc2lvbj03

Can I know the reason and why it missmatch with encoder base64 ?

Any help is apprecited !

1

There are 1 best solutions below

1
Eason Kang On

Your version id is incorrect. For a version, the id should looks urn:adsk.wipprod:fs.file:vf.j2R5fwxfTJq9DOsvX1p9ZQ?version=7. The urn:adsk.wipprod:dm.lineage:j2R5fwxfTJq9DOsvX1p9ZQ should be the item id.

However,

Please don't do the encoding yourself. You can get Derivative API from Data Management API directly.

https://aps.autodesk.com/blog/get-derivative-urn-accbim360-file-viewing-it-viewer

"derivatives": {
                  "data": {
                      "type": "derivatives",
                      "id": "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLlNrbjlTSkk4UVVpUkwwZHBtN29jNVE_dmVyc2lvbj0x"
                  },
                  "meta": {
                      "link": {
                          "href": "...."
                      }
                  }
              },