Mostafa abdo
Mostafa abdo

Reputation: 791

Autodesk Forge: Download checklist attachment

When I retrieve a checklist instance, I got the following section related to attachment.

    {
  "type": "instance_item_attachments",
  "id": "5a0a2acf-b02a-4b88-86cc-962c3831bdee",
  "attributes": {
    "name": "6856ad10-6ab0-11e9-9150-9fda3da0626e.png",
    "attachmentType": "OSS",
    "mimeType": "image/png",
    "uploadStatus": "COMPLETED",
    "urns": [
      {
        "urn": "urn:adsk.wipprod:fs.file:vf.gy4mB910SneymU86Gc4O0A?version=1",
        "type": "WIP"
      },
      {
        "urn": "urn:adsk.objects:os.object:wip.dm.prod/ede3de59-1b68-485c-82fe-f1f2af3442fe.png",
        "type": "OSS"
      },
      {
        "urn": "urn:adsk.checklists.cs.attachment:58b8afcf-d7cd-49ad-aa10-78c50610761b/5a0a2acf-b02a-4b88-86cc-962c3831bdee",
        "type": "CHECKLIST"
      }
    ],
    "createdAt": "2019-04-29T18:55:51.334Z",
    "updatedAt": "2019-04-29T18:55:54.137Z",
    "createdBy": "TAKCJQU6HGXW",
    "modifiedBy": "TAKCJQU6HGXW",
    "permittedActions": [
      "canArchive",
      "canEdit"
    ],
    "permittedAttributes": [
      "mimeType",
      "uploadStatus"
    ]
  },
  "links": {
    "self": "/containers/58b8afcf-d7cd-49ad-aa10-78c50610761b/instance_item_attachments/5a0a2acf-b02a-4b88-86cc-962c3831bdee"
  },
  "relationships": {
    "container": {
      "meta": {
        "relation": "primary",
        "readOnly": false
      },
      "links": {
        "self": "/containers/58b8afcf-d7cd-49ad-aa10-78c50610761b/instance_item_attachments/5a0a2acf-b02a-4b88-86cc-962c3831bdee/relationships/container",
        "related": "/containers/58b8afcf-d7cd-49ad-aa10-78c50610761b/instance_item_attachments/5a0a2acf-b02a-4b88-86cc-962c3831bdee/container"
      },
      "data": {
        "type": "containers",
        "id": "58b8afcf-d7cd-49ad-aa10-78c50610761b"
      }
    },
    "item": {
      "meta": {
        "relation": "primary",
        "readOnly": false
      },
      "links": {
        "self": "/containers/58b8afcf-d7cd-49ad-aa10-78c50610761b/instance_item_attachments/5a0a2acf-b02a-4b88-86cc-962c3831bdee/relationships/item",
        "related": "/containers/58b8afcf-d7cd-49ad-aa10-78c50610761b/instance_item_attachments/5a0a2acf-b02a-4b88-86cc-962c3831bdee/item"
      },
      "data": null
    }
  }
}

Now, I want to download this attachment, the provided URN is: wip.dm.prod/ede3de59-1b68-485c-82fe-f1f2af3442fe.png

If I try to access it using the following link, it says not found

developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/b30e3ffe-333b-446c-b834-e2f2141096b4.png

However, if I changed the URL a bit (by adding objects), it works fine.

developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/b30e3ffe-333b-446c-b834-e2f2141096b4.png

Am I doing something wrong here? or this is a bug in the provided urn?

Upvotes: 0

Views: 202

Answers (2)

Augusto Goncalves
Augusto Goncalves

Reputation: 8574

Adding to Adam Nagy reply, you would need to break the URN. From your original question:

urn:adsk.objects:os.object:wip.dm.prod/ede3de59-1b68-485c-82fe-f1f2af3442fe.png

In .NET you can try (using System.Linq):

string bucketKey = urn.Split("/").First().Split(":").Last();
string objectName = urn.Split("/").Last();

Then rebuild as:

string attachemtnUrl = string.Format("{0}/oss/v2/buckets/{1}/objects/{2}", BASE_URL, bucketKey, objectName);

And you'll also need the Authorization header with a valid access token.

Upvotes: 2

Adam Nagy
Adam Nagy

Reputation: 2125

The id / urn of an object in OSS (Object Storage Service) contains the bucket name and object name after the "urn:adsk.objects:os.object:" section.

There is a tutorial on downloading a file https://forge.autodesk.com/en/docs/data/v2/tutorials/download-file/

It shows that the reply concerning an item contains both the id and the actual URL of the download link under the storage section:

"storage": {
  "data": {
    "type": "objects",
    "id": "urn:adsk.objects:os.object:wip.dm.prod/977d69b1-43e7-40fa-8ece-6ec4602892f3.rvt"
  },
  "meta": {
    "link": {
      "href": "https://developer.api.autodesk.com/oss/v2/buckets/wip.dm.prod/objects/977d69b1-43e7-40fa-8ece-6ec4602892f3.rvt"
    }
  }
}

There you can see the connection between the id and the URL you can use to download the file

Upvotes: 1

Related Questions