> For the complete documentation index, see [llms.txt](https://docs.datasaur.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.datasaur.ai/integrations/external-object-storage/azure-blob-storage.md).

# Azure Blob Storage

## File key

This attribute is used during project creation to tell Datasaur which file to use. You can get it from the Blob URL, as shown in the example below.

* Blob URL: `https://container-name.blob.core.windows.net/storage-account/some-folder/image.jpeg`
* File key: `some-folder/image.jpeg`

## Setup

By integrating your bucket with Datasaur, you can create projects using files directly from your Blob Storage Container.

#### 1. Set up integration in the Settings page

1. Go to **Settings** **> External object storage**.
2. Click **Add external object storage** and select **Azure Blob Storage**.

Keep this form open during the setup process, we will return to it shortly.

#### 2. Get the Tenant ID

1. Go to **Azure Entra ID** in the Azure portal.
2. Open the **Overview** tab, and copy the **Tenant ID** attribute.

#### 3. Get the Storage Container URL

1. Go to **Storage Accounts** in the Azure portal.
2. Create or select a storage account
3. In the sidebar, go to **Data Storage > Containers.**
4. Create or select a Blob Storage container.
5. Open **Properties** under **Settings.**
6. Copy the **URL.**

#### 4. Add Datasaur to Azure tenant

<figure><img src="/files/uhB0QceG0g68qykRroOR" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
You must have at least **Privileged Role Administrator** permissions to grant consent for App Registrations with delegated access.
{% endhint %}

If this is your first time connecting Azure Blob Storage to Datasaur, click **Add Datasaur to Azure tenant** to grant consent for Datasaur’s App Registration.

If this has already been done, you can skip this step.

Continue in a new tab and authorize the Datasaur app. Admin permission is required to complete this step.

#### 5. Configure CORS

1. Go to your **Storage Account** in the Azure portal.
2. In the sidebar, open **Settings > Resource sharing (CORS)**.
3. Add a new rule with the following configuration so the Datasaur app can access your resources:
   * Allowed origins: `https://app.datasaur.ai`
   * Allowed methods: `GET, POST, PUT, DELETE`
   * Allowed headers: `*`
4. (Optional) If your Storage Account has strict security settings, you may need to whitelist Datasaur’s IP address.
   1. Go to your **Storage Account.**
   2. Open **Security + Networking > Networking.**
   3. Set **Public network access** to **Enabled from selected virtual networks and IP addresses**..
   4. In the firewall section, add the following IP address: `107.22.228.65`.
   5. Save the settings.

#### 6. Assign role permissions to Datasaur service principal

1. In your **Storage Account**, go to **Access Control (IAM).**
2. Click **Add > Add role assignment.**
3. Select **Storage Blob Data Contributor**, then click **Next.**
4. Under **Assign access to**, choose **User, group, or service principal.**
5. Click **Select members** and search for: `datasaur-object-storage-integrator`. If it does not appear, make sure Datasaur has already been added to your Azure tenant.
6. Click **Next.**
7. Continue through **Conditions.**
8. Click **Review + assign.**

#### 7. Finish the integration form

Return to the Datasaur app. The form should already be filled in from the previous steps.

Click **Check connection** to verify that the configuration is correct. If the connection succeeds, you can continue creating the external object storage integration by clicking **Add storage**.

Datasaur can now directly access files from and export files to your Azure Blob Storage.
