Docs / Strand / connectors/azure-blob-storage
Azure Blob Storage
Direction: Read / Write | Type: azure.storage
Azure Blob Storage connector for uploading and downloading data from blob containers.
Required Permissions
If using Azure RBAC (recommended), the service principal or managed identity must have the following roles:
| Operation | Required Azure Role |
|---|---|
upload |
Storage Blob Data Contributor |
download |
Storage Blob Data Reader |
| Both | Storage Blob Data Contributor |
Tip: Assign roles at the storage account or container level for least privilege. If using account keys for authentication, all operations are implicitly authorized.
Operations
| Operation | Direction | Description |
|---|---|---|
upload |
Write | Upload data to a blob container |
download |
Read | Read a blob's contents into the workflow as JSON |
The download operation reads blob content into the node's output payload as JSON. It does not download or save files to disk.
Connector Configuration
| Field | Required | Default | Description |
|---|---|---|---|
| Authentication Type | No | api_key |
api_key for explicit credentials, role to use Azure Managed Identity / DefaultAzureCredential |
| Account Name | Yes | - | Azure storage account name |
| Account Key | Conditional | - | Azure storage account access key (encrypted). Required when Authentication Type is api_key |
| Tenant ID | Conditional | - | Your Azure AD tenant ID. Required when Authentication Type is role. The Tendrl app must be registered/consented in this tenant. |
| Connection String | No | - | Full Azure storage connection string (encrypted). Use instead of Account Name and Account Key to reach Azure Government, Azure China, or a private endpoint. |
| Account URL | No | - | Explicit service URL, used with role auth in place of the public-cloud address (e.g. a private endpoint). Leave empty for public Azure. |
| Container Name | No | - | Default blob container name (can be overridden at node level) |
When using role authentication, the connector authenticates via Azure Managed Identity / DefaultAzureCredential. You must still supply both Account Name and Tenant ID; no keys or connection string are needed. Set Account URL as well if the account is not on public Azure.
Node Configuration
| Field | Required | Description |
|---|---|---|
| Operation | Yes | upload or download |
| Container Name | No | Blob container name (overrides connector default) |
| Blob Name | Depends | Blob name/path. Auto-generated for uploads if not specified. Required for downloads. |
Output
upload
{
"success": true,
"status": "uploaded",
"data": {
"container": "my-container",
"blob_name": "path/to/file.json"
},
"service": "azure.storage",
"operation": "upload"
}
download
{
"success": true,
"status": "downloaded",
"data": {
"container": "my-container",
"blob_name": "path/to/file.json",
"content": {"your": "data"}
},
"service": "azure.storage",
"operation": "download"
}
Access the content:
{{ payload.data.content }}
Example
Connector Setup:
{
"account_name": "mystorageaccount",
"account_key": "base64-encoded-key...",
"container_name": "workflow-data"
}
Connector Setup (role-based):
{
"auth_type": "role",
"account_name": "mystorageaccount",
"tenant_id": "00000000-0000-0000-0000-000000000000",
"container_name": "workflow-data"
}
Node Configuration (upload):
- Operation:
upload - Blob Name:
events/{{ payload.id }}.json
Node Configuration (download):
- Operation:
download - Blob Name:
config/settings.json
Tendrl