Skip to content

BLOB Workloads

Use BLOB tables for binary payload storage and retrieval via HTTP endpoints.

Create BLOB table

CREATE BLOB TABLE media
CLUSTERED INTO 3 SHARDS;

Upload / download / delete

MonkDB BLOBs are addressed by SHA-1 hash of content.

# upload
curl -X PUT "http://localhost:4200/_blobs/media/<SHA1>" --data-binary @sample.pdf

# download
curl -X GET "http://localhost:4200/_blobs/media/<SHA1>" -o downloaded.pdf

# delete
curl -X DELETE "http://localhost:4200/_blobs/media/<SHA1>"

Production pattern: metadata table

BLOB tables do not provide rich SQL metadata browsing by default. Keep a relational metadata table:

CREATE TABLE IF NOT EXISTS doc.blob_metadata (
  file_id TEXT PRIMARY KEY,
  blob_sha1 TEXT,
  logical_path TEXT,
  content_type TEXT,
  uploaded_at TIMESTAMPTZ DEFAULT CURRENT_TIMESTAMP
);

This enables list/filter/audit queries without scanning binary payload storage.

Operational caveats

  • Treat BLOB endpoint auth and TLS as mandatory in non-local environments.
  • Use snapshot/backup strategy appropriate to your BLOB durability requirements.
  • Prefer external object store integration when advanced object lifecycle/versioning is required.