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 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)
Role-Based Authentication

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

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"
}

Connector Setup (role-based):

json

{
  "auth_type": "role",
  "account_name": "mystorageaccount",
  "tenant_id": "00000000-0000-0000-0000-000000000000",
  "container_name": "workflow-data"
}

Node Configuration (upload):

Node Configuration (download):