ServicesScanDALHTTP APIBlobs

Write a blob

POST
/blobs/write

Store the request body as a new blob of a Table, under its blobs/ directory, and return its reference. The service stops reading and fails the request when the body exceeds maxBytes. The blob becomes part of the Table only when a committed row references it. A publication binding from the Tables API is enough.

Authorization

bearerAuth
headerAuthorizationBearer <token>

Header Parameters

scandal-request*string

The WriteBlobRequest request as JSON, base64url-encoded without padding.

Request Body

body*fileapplication/octet-stream
Formatbinary

Response Body

Success

application/json
  1. response

A reference to a payload that one Table owns. It is never a download URL. digest is the BLAKE3 digest of the whole payload, as lowercase hexadecimal. The payload is the object blobs/<objectId> under the Table's root, or attempts/<attempt>/blobs/<objectId> when an upload into a write attempt stored it.

attempt?|null
digest*string
mediaType*string
objectId*string
Formatuuid
size*|
tableId*string
Formatuuid
curl -X POST 'https://scandal.spiraldb.dev/blobs/write' \  -H 'scandal-request: string' \  -H 'Content-Type: application/octet-stream' \  -d 'string'
{  "attempt": "d2c50383-9b42-408a-bf30-8303c70e72c1",  "digest": "string",  "mediaType": "string",  "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e",  "size": "string",  "tableId": "073fbfcb-cd05-4203-be18-a1ce6f8e4d2d"}