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 |
Info
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 |
Uses explicit credentials (the fields below). |
| Account Name | Yes | - | Azure storage account name |
| Account Key | Conditional | - | Azure storage account access key (encrypted). Required when Authentication Type is api_key |
| 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 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) |
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#
json
{
"success": true,
"status": "uploaded",
"data": {
"container": "my-container",
"blob_name": "path/to/file.json"
},
"service": "azure.storage",
"operation": "upload"
}
download#
json
{
"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:
jinja2
{{ payload.data.content }}
Example#
Connector Setup:
json
{
"account_name": "mystorageaccount",
"account_key": "base64-encoded-key...",
"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