# Set up a storage integration with MinIO and S3-compatible custom storage services

{% hint style="info" %}
If you are looking for instructions on how to set up a storage integration with an Amazon AWS S3 bucket, please go to [this page](https://docs.imerit.net/data/storages/importing-private-cloud-assets-aws).

The page you are currently reading is for MinIO and S3-compatible custom storage solutions.
{% endhint %}

Administrators and project managers can import assets to Ango Hub from S3-compatible storage services.

Once you have created a storage integration by following the steps in this page, you are ready to import files by providing Ango Hub with URLs to files in your private buckets. You may follow the steps in this page to do so: [Importing Cloud (Remote) Assets](https://docs.imerit.net/data/importing-assets/asset-cloud-import)

## Configure CORS (Mandatory step)

The CORS header below allows Ango Hub to send a request to your cloud storage, and allows your cloud storage to explicitly allow requests from Hub. This is a necessary step to ensure Hub can connect to your private bucket.

[The steps to follow to set up CORS with Ango Hub can be found here.](https://docs.imerit.net/data/storages/set-up-cors) On that page, you may follow the instructions for AWS S3 buckets.

## Connect your Cloud Storage by creating an IAM User for Ango Hub <a href="#preparing-the-csv" id="preparing-the-csv"></a>

Once you've set up CORS for your bucket, you will need to create a connection between Hub and the bucket itself.

You will need your bucket's *Access Key ID* and *Secret Key*. To obtain them, you will need to create an IAM user on your custom storage provider's management dashboard.

Once you have obtained the two strings, go to [your organization's page](https://imerit.ango.ai/organization), then click on *Storages* and *Add Storage.*

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FefvNiTyTp54uMI96iJ3F%2Fimage.png?alt=media&#x26;token=c4f7189b-b356-475a-a4d0-c63bf8fb0a18" alt=""><figcaption></figcaption></figure>

From the dialog that pops up, pick "S3 Compatible" and click on "Next".

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FA6uioidQ0K9xNTQYr96l%2Fimage.png?alt=media&#x26;token=77ad5139-c64a-4343-99df-6b9a4634bc3d" alt="" width="563"><figcaption></figcaption></figure>

Provide your connection with a unique name, the URL of your MinIO or your S3-compatible service, the aforementioned keys, and the region. Click on "Next".

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2FMCpRoQw28smneq632WQ8%2Fimage.png?alt=media&#x26;token=8192ebd1-ba02-4ff8-9882-0f4152f92f40" alt="" width="563"><figcaption></figcaption></figure>

You will be shown a screen asking you if you'd like to validate whether your storage has been successfully connected to Ango Hub. Please follow the instructions on [this docs page](https://docs.imerit.net/data/storages/validating-storage-integrations) for information on how to use the validation form. When you are done, click on "Create Storage". You may click on it immediately if you wish to skip validating your storage integration.

<figure><img src="https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2Figa3JekdeTt8K4bBvb1a%2Fimage.png?alt=media&#x26;token=0a04934f-699b-498d-bddf-a2d6acf43072" alt=""><figcaption></figcaption></figure>

Your bucket will be linked to Hub, and it will show up in your list of integrations.

![](https://3895963154-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FTcOUG6rfWxqGM0N4db2P%2Fuploads%2Fwwqz7pmCcb98nRqj7HAO%2FScreen%20Shot%202022-03-17%20at%2012.09.36.png?alt=media\&token=8fd7b78a-c1af-42b3-bbf2-cbde124872a4)

{% hint style="info" %}
Integrations belong to your organization, not your user.

If you want to be able to access your non-public cloud data in multiple organizations, you will have to integrate Hub with AWS in every one of them.
{% endhint %}

## Preparing and Uploading the JSON for Import <a href="#preparing-the-csv" id="preparing-the-csv"></a>

After connecting your bucket, you will need to prepare a JSON file containing each asset’s [external ID](https://docs.imerit.net/core-concepts/assets#External-ID) as well as the asset's full absolute path and, optionally, other information.

Follow the steps outlined in the docs page on [Importing Cloud (Remote) Assets](https://docs.imerit.net/data/importing-assets/asset-cloud-import).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.imerit.net/data/storages/set-up-minio-s3-comp-storage-integration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
