> For the complete documentation index, see [llms.txt](https://docs.imerit.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.imerit.net/data/importing-assets/importing-attachments-during-asset-import.md).

# Importing Attachments during Asset Import

Hub allows you to import [attachments](/core-concepts/attachments.md) together with assets, at the same time.

To do so, you will have to use the *Cloud Import JSON* method for importing assets, as explained below:

1. In your project, go to the *Assets* tab and click on the *Add Data* button.
2. From the dialog that appears, enter the *Cloud Storage* tab.
3. Prepare a JSON formatted like the following. It is an array of objects, with each object representing an asset. Each object, then, in its `attachments` property, will have a list of attachments, like so:

{% hint style="warning" %}
URLs may not contain spaces or "+" characters anywhere.
{% endhint %}

```json
[
    {
        "externalId":"my_external_id",
        "data":"https://url-to.asset/video.mp4",
        "attachments":[
            {"type":"IMAGE","value":"https://angohub-public-assets.s3.amazonaws.com/uploaded-data-6cbc3c56-58f9-4430-990d-863bd5a1a755.jpg"},
            {"type":"TEXT","value":"This is a text attachment."}
        ]
    }
]
```

### Importing attachments from private storage

If an attachment file is located in a private storage you have connected to Ango Hub, append the storage integration's ID to the attachment URL with `?storageId=YOUR_STORAGE_ID`.

You can find the storage integration ID from the *Storages* tab in the *Organization* page, or with the [get\_storages()](/sdk/sdk-documentation/organization-level-sdk-functions/get_storages.md) SDK function.

For example:

```json
[
    {
        "externalId":"my_external_id",
        "data":"https://url-to.asset/video.mp4",
        "attachments":[
            {"type":"IMAGE","value":"https://your-bucket-name.s3.your-aws-region.amazonaws.com/attachment-image.png?storageId=YOUR_STORAGE_ID"},
            {"type":"VIDEO","value":"https://your-bucket-name.s3.your-aws-region.amazonaws.com/attachment-video.mp4?storageId=YOUR_STORAGE_ID"}
        ]
    }
]
```

If the main asset is also in private storage, select the correct [storage integration](/data/storages.md) from the *Storage Method* dropdown when uploading the JSON.

4. Drag and drop the JSON you've just created on the *Cloud Storage* file box:

   <figure><img src="/files/Qrd0IHBJ7gTIUHjuAsLQ" alt=""><figcaption></figcaption></figure>
5. Your assets with attachments will appear in the *Assets* tab.

See the pages on [attachments](/core-concepts/attachments.md) and [cloud import](/data/importing-assets/asset-cloud-import.md) for more on each topic.
