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

# Azure Blob Storage

Connect an Azure Blob Storage container as a Files integration.

> Store your project's files in a container in your own Azure storage account.

*Last updated 2026-09-11 · Applies to all projects*

**Where:** Files → Integrations → **Add New Integration** → Azure Blob Storage · `/projects/<project>/files/integrations/new/azure-blob`

## Why it exists

If your organisation runs on Azure, files should not be the one thing living in another cloud. This integration writes them to a container in your own storage account, so they stay inside your Azure subscription, your network rules, and your invoice.

## When you'd use it

* Your infrastructure is on Azure and files should sit next to it.
* Policy requires data to remain in an Azure region you chose.
* You want Azure lifecycle management (cool or archive tiers) on project files.

## Where to find it

Files → **Integrations** → **Add New Integration** → **Azure Blob Storage**.

<figure><img src="https://760328771-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LwSkuCpTNI_AerL8J2a%2Fuploads%2Fgit-blob-1579380b80c1fe383a92ad7c67a8398ccfe52116%2Ffiles-new-azure-blob.png?alt=media" alt="The New Azure Blob Storage Integration form"><figcaption><p>Files → Integrations → Add New Integration → Azure Blob Storage.</p></figcaption></figure>

## How to set it up

You need the `files:create` permission on `files:integration:all` in Norbix, and access to the storage account's keys in Azure.

1. In the Azure portal, create (or pick) a **storage account**, then create a **container** inside it.
2. Open the storage account → **Access keys** and copy a **connection string**.
3. In Norbix, go to **Files → Integrations → Add New Integration → Azure Blob Storage**.
4. **Container Name** — the container that will hold the files, for example `project-files`.
5. **Connection String** — paste the value from step 2. It looks like `DefaultEndpointsProtocol=https;AccountName=...;AccountKey=...;EndpointSuffix=core.windows.net`.
6. Give the integration a **name** you will recognise, such as `Production files`.
7. Press **Test**, then **Save**.

**What "working" looks like:** **Test** reports success, the integration shows as **Enabled** in the list, and the [Browser](/cloud/files/browser.md) can list the container (empty is fine for a new one).

## Good to know

* **The container must already exist.** Norbix writes into it but does not create it for you.
* **The connection string is the secret.** Re-opening the form shows the container name filled in and the connection string empty — leave it empty to keep the stored value, or paste a new one to replace it.
* **Rotating the account key breaks the integration.** Azure keys come in pairs; rotate one, update the connection string here, then rotate the other.
* Use a container dedicated to this project. Norbix lists everything it finds, so a shared container makes the Browser noisy.
* Deleting the integration does not delete the container or its contents.

## Do it in code

{% tabs %}
{% tab title="JavaScript / TypeScript" %}

```ts
import { Norbix } from '@norbix.ai/ts';
const norbix = new Norbix();

await norbix.hub.files.saveFilesIntegration({
  name: 'Production files',
  provider: 'AzureBlobStorage',
  integration: {
    blobName: 'project-files',
    connectionString: '<your-connection-string>',
  },
});
```

{% endtab %}

{% tab title=".NET" %}

```csharp
using Norbix.Sdk;

using var client = new NorbixClient();

await client.Files.SaveFilesIntegrationAsync(new SaveFilesIntegrationRequest
{
    Name = "Production files",
    Provider = "AzureBlobStorage",
    // provider-specific body: blobName, connectionString
});
```

{% endtab %}

{% tab title="Python" %}

```python
from norbix_python import NorbixHub

norbix = NorbixHub()

norbix.files.save_files_integration(
    name="Production files",
    provider="AzureBlobStorage",
    integration={
        "blobName": "project-files",
        "connectionString": "<your-connection-string>",
    },
)
```

{% endtab %}

{% tab title="Go" %}

```go
c, _ := norbix.New(norbix.Options{})
ctx := context.Background()

var result map[string]any
_ = c.Hub.Files.SaveFilesIntegration(ctx, map[string]any{
	"name":     "Production files",
	"provider": "AzureBlobStorage",
	"integration": map[string]any{
		"blobName": "project-files",
	},
}, &result)
```

{% endtab %}
{% endtabs %}

**CLI:** the Norbix CLI covers files themselves (`norbix files list`, `info`, `download`, `upload`, `sign`, `delete`) but has no command for the module or its integrations. Use an SDK or the API for those.

Method page: [Save Files Integration](/sdks-and-cli/files/integrations/save-files-integration.md)

## API reference

Endpoints: [Save Files Integration](/api-reference/files/integrations/save-files-integration.md) · [Files → Integrations](/api-reference/files/integrations.md).

## Related

[Providers](/cloud/files/integrations/providers.md) · [AWS S3](/cloud/files/integrations/providers/aws-s3.md) · [Google Cloud Storage](/cloud/files/integrations/providers/google-cloud.md) · [Integrations](/cloud/files/integrations.md)
