← all adapters
azure-storage-style
simulates Azure Storage Blob REST API 2024-08-04
restadapter v0.1.09 routes
verification
use it
# add to stunt.yaml
services:
azure-storage:
adapter: embedded:azure-storage-style
# then
$ stunt upThe embedded: source extracts this adapter from the binary — no git clone, fully offline.
how to mock the Azure Storage Blob REST API locally
Install stunt, paste the service block above into stunt.yaml, run stunt up — then point your client at localhost instead of Azure Storage Blob REST API. It works offline, keeps state across requests and restarts, and every response is synthetic: the route shapes, status codes, pagination, and webhook delivery follow the real Azure Storage Blob REST API 2024-08-04 surface — the data is fake, the behavior is real.
backing stores
containersblobs
api surface (9)
generated from the adapter manifest — exactly what boots, nothing more · covers 7% of the real API's 69 routes (derived from spec azure-rest-api-specs BlobStorage 2026-06-06 @ 2026-06-06)
9 routes
GET/
PUT/{container}
GET/{container}
HEAD/{container}
DELETE/{container}
PUT/{container}/{blob}
GET/{container}/{blob}
HEAD/{container}/{blob}
DELETE/{container}/{blob}
VM-verified behaviors (6)
- ✓container create passes auth with clock-driven Last-Modified and ETag
- ✓blob upload passes auth with byte-exact content
- ✓blob download round-trips bytes with the stored ETag
- ✓ListContainers includes the container with query params signed
- ✓a tampered signature gets the 403 AuthenticationFailed XML envelope
- ✓an account outside the key table fails closed with 403
Not implemented (6)
- No Append Blob or Page Blob types — Block Blob only
- No lease operations (?comp=lease) on blobs or containers
- No blob snapshots or copy (?comp=copy, from URL)
- No container ACL or metadata set/get — HEAD metadata only
- No service-level properties, stats, CORS, or user delegation keys
- No blob tags/index (?comp=tags) or soft delete/immutability
Differs from the real API (3)
- Content-MD5 carries base64 SHA-256 (engine has no MD5) — documented deviation
- SAS checked structurally (sv/sig/se present) and any non-empty bearer accepted
- PUT on an existing container updates it in place 201 (real Azure: 409 conflict)
want more of the Azure Storage Blob REST API surface? adapters are YAML + Starlark — the authoring guide covers adding routes, fixtures, and state machines. Open an issue for anything big first, or just file a PR — merged routes ship in the next release.