Skip to Content
SourcesAzure Blob Storage

Azure Blob Storage

Azure Blob Storage

Scan blobs from Azure Storage containers with key, SAS, or managed identity auth.

Category
Warehouse & Lakehouse
Source type
AZURE_BLOB_STORAGE
Produces
fileimageaudiovideoarchive

Azure Blob Storage holds the flat files of the Microsoft-estate data platform: landing zones, exports, archives, and whatever a pipeline dropped along the way.

What you need to connect

The account URL (https://<account>.blob.core.windows.net) and a container. Then pick whichever credential you already have — the source accepts all the usual Azure options:

CredentialNotes
Connection stringTakes precedence over everything else
Account keyFull access to the account — prefer something narrower
SAS tokenScope it to read + list on one container
Service principalEntra client ID, secret and tenant ID
Managed identityLeave all credentials empty — the default Azure credential chain is used

Storage Blob Data Reader is the right role for the Entra-based options.

What Classifyre reads

Every blob in the container, narrowed by prefix and by extension allow- and denylists.

Shared behaviour · File and object sources

Every object in the container becomes one asset. What it is — a PDF, a spreadsheet, a screenshot, a video — is worked out from the bytes themselves, not from the file name, because storage systems routinely label everything as generic binary data. The full list of readable types is on File Formats.

Files hidden inside other files are pulled out and scanned in their own right: images embedded in a document, and every member of a ZIP, TAR, 7z or RAR archive. Images, audio and video need OCR and transcription switched on before their content can be read.

Large objects are streamed rather than loaded whole, so a multi-gigabyte file costs disk rather than memory, and only the part a sampling window asks for is read.

Blobs from this container are read with the shared file pipeline: see Supported File Formats for everything it can open, and OCR & Transcription for reading text out of images, audio and video.

Metadata on every asset

Asset kind · file

FieldTypeAlways presentWhat it is
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
image_widthintegerNoWidth in pixels
image_heightintegerNoHeight in pixels
page_countintegerNoNumber of pages (pdf)
paragraph_countintegerNoNumber of paragraphs (docx)
table_countintegerNoNumber of tables (docx)
row_countintegerNoNumber of data rows
columnsobject[]NoColumns as {name, type} objects (type may be empty for csv/xlsx)
encodingstringNoDetected character encoding
json_root_typestringNoRoot JSON type: object, array, or scalar
top_level_keysintegerNoNumber of top-level keys when the root is an object
array_lengthintegerNoLength when the root is an array
providerstringYesStorage provider label
object_keystringYesObject key/path
etagstringNoObject entity tag
source_hashstringNoHash of the parent asset (embedded files and archive members only)
locationstringNoLocation within the parent (embedded file location or archive member path)

Asset kind · image

FieldTypeAlways presentWhat it is
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
image_widthintegerNoWidth in pixels
image_heightintegerNoHeight in pixels
providerstringNoStorage provider label
object_keystringNoObject key/path
etagstringNoObject entity tag
source_hashstringNoHash of the parent asset (embedded files and archive members only)
locationstringNoLocation within the parent (embedded file location or archive member path)

Asset kind · audio

FieldTypeAlways presentWhat it is
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
providerstringYesStorage provider label
object_keystringYesObject key/path
source_hashstringNoHash of the parent asset (embedded files and archive members only)
locationstringNoLocation within the parent (embedded file location or archive member path)

Asset kind · video

FieldTypeAlways presentWhat it is
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
providerstringYesStorage provider label
object_keystringYesObject key/path
source_hashstringNoHash of the parent asset (embedded files and archive members only)
locationstringNoLocation within the parent (embedded file location or archive member path)

Asset kind · archive

FieldTypeAlways presentWhat it is
size_bytesintegerYesRaw byte size of the content
mime_typestringYesResolved MIME type
parse_errorstringNoSet when content extraction failed
providerstringYesStorage provider label
object_keystringYesObject key/path
etagstringNoObject entity tag
source_hashstringNoHash of the parent asset (embedded files and archive members only)
locationstringNoLocation within the parent (embedded file location or archive member path)

Lineage

Lineage

This source records no lineage. Nothing in the system it reads describes data moving from one place to another, so no FLOW edges are produced. Related items are still linked — see Lineage & Relationships for what those links mean and how they differ from lineage.

Worth knowing

  • Managed identity is the cleanest deployment in AKS — no secret to store or rotate at all.
  • Archives and embedded files are expanded into child assets, under configurable caps.
  • Turning off content preview gives you a blob inventory with no downloads.

Configuration

Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.

Required

Without these, the source will not save.

FieldTypeRequiredWhat it doesDefault
requiredobjectYesno extra properties
account_urlstringYesAzure Blob account URL (for example, https://<account>.blob.core.windows.net)format uri
containerstringYesAzure Blob container name

Secrets

Stored encrypted and never shown again after you save them. See Configuration & Fields.

FieldTypeRequiredWhat it doesDefault
maskedobjectNoOptional Azure credentials. Leave empty to use managed identity/default credential chain.no extra properties
azure_account_keystringNoAzure storage account key
azure_client_idstringNoAzure Entra client ID (service principal auth)
azure_client_secretstringNoAzure Entra client secret (service principal auth)
azure_connection_stringstringNoAzure storage connection string (takes precedence over other auth fields)
azure_sas_tokenstringNoAzure SAS token
azure_tenant_idstringNoAzure Entra tenant ID (service principal auth)

Optional

Everything you can tune. Sensible defaults apply when you leave them alone.

FieldTypeRequiredWhat it doesDefault
optionalobjectNono extra properties
connectionobjectNono extra properties
connection.max_archive_member_bytesintegerNoMaximum uncompressed bytes read from a single archive membermin 102410485760
connection.max_archive_membersintegerNoMaximum member files expanded from one archive into child assets. Bounds fan-out, and is the guard against a zip bomb.min 1, max 10000200
connection.max_archive_total_bytesintegerNoMaximum uncompressed bytes read across all members of one archive. The decompression-ratio ceiling: a zip bomb hits this before it hits memory.min 1024104857600
connection.max_embedded_filesintegerNoMaximum embedded files (parquet image/audio columns, office media) expanded from one container into child assets per runmin 1, max 10000200
connection.max_file_bytesintegerNoRefuse any object larger than this many bytes. 0 or unset means no limit: an object above max_object_bytes is spooled to disk rather than held in memory, so file size is bounded by free disk, not by RAM.min 0
connection.max_keys_per_pageintegerNoMaximum blobs requested per list pagemin 1, max 1000200
connection.max_object_bytesintegerNoMaximum bytes of one object held in memory. Larger objects are streamed to a temporary file (or read by byte range where the provider supports it), so this bounds memory rather than the size of file that can be scanned. See max_file_bytes to refuse large objects outright.min 10245242880
connection.request_timeout_secondsnumberNoNetwork timeout in seconds for list/download operationsmin 1, max 30030
scopeobjectNoObject scope and filtering controls.no extra properties
scope.exclude_extensionsarrayNoOptional extension denylist
scope.exclude_extensions[]stringNo
scope.include_content_previewbooleanNoDownload object bytes to infer MIME and extract detector-ready text previewstrue
scope.include_empty_objectsbooleanNoInclude zero-byte objects in extraction resultsfalse
scope.include_extensionsarrayNoOptional extension allowlist (for example, .pdf, .csv, .parquet)
scope.include_extensions[]stringNo
scope.include_object_metadatabooleanNoAttach provider metadata (etag, size, content-type hints, timestamps) to asset checksumstrue
scope.prefixstringNoObject key prefix filter (for example, exports/2026/)
Last updated on