> 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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.datasaur.ai/integrations/external-object-storage/azure-blob-storage.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
