Blob Storage

Azure Blob Storage emulation: containers and block blobs over the native REST (XML) protocol. Compatible with the azblob SDK and the az storage CLI.

Endpoint

URLhttp://127.0.0.1:10000/devstoreaccount1
ProtocolHTTP / REST (XML)
PersistedYes โ€” state lives under /data

Configuration

FlagEnvironment variableDefault
-addrLOCALAZ_BLOB_ADDR:10000
-dataLOCALAZ_DATA_DIR/data

The Blob flag is -addr (not -blob-addr) for back-compat with Azurite. The port matches Azurite’s UseDevelopmentStorage=true shorthand.

Supported operations

OperationREST surface
List ContainersGET /{account}?comp=list
Create ContainerPUT /{account}/{container}?restype=container
Get Container PropertiesGET/HEAD /{account}/{container}?restype=container
Delete ContainerDELETE /{account}/{container}?restype=container
List Blobs (flat + hierarchical)GET /{account}/{container}?restype=container&comp=list
Put Blob (block blob)PUT /{account}/{container}/{blob}
Put Block / Put Block ListPUT /{account}/{container}/{blob}?comp=block / comp=blocklist
Get Blob (+ range requests)GET /{account}/{container}/{blob}
Get/Head Blob PropertiesHEAD /{account}/{container}/{blob}
Delete BlobDELETE /{account}/{container}/{blob}

Supported semantics include container/blob metadata (x-ms-meta-*), content settings, Content-MD5 round-tripping, virtual-directory listing via a delimiter, single-shot and staged-block uploads, and single-range GET requests.

Not yet implemented: page/append blobs, leases, snapshots, versioning, soft delete, tags, SAS, and Shared Key signature verification.

Example: Go SDK

connStr := os.Getenv("AZURE_STORAGE_CONNECTION_STRING")
client, _ := azblob.NewClientFromConnectionString(connStr, nil)

ctx := context.Background()
client.CreateContainer(ctx, "demo", nil)
client.UploadBuffer(ctx, "demo", "hello.txt", []byte("hi"), nil)

resp, _ := client.DownloadStream(ctx, "demo", "hello.txt", nil)
data, _ := io.ReadAll(resp.Body)
fmt.Println(string(data))

Example: Azure CLI

# Export AZURE_STORAGE_CONNECTION_STRING first โ€” see the Get Started guide.

az storage container create --name demo
az storage blob upload --container-name demo --name hello.txt --file ./hello.txt
az storage blob list --container-name demo -o table
az storage blob download --container-name demo --name hello.txt --file ./out.txt