Start a blob upload
Start a multipart upload of one blob into a write attempt, for a payload too large for one request. Send its parts to any instance, in any order and each retried on its own, then complete it for a blob that a row appended in the same write can carry. A binding the Tables API issued for the attempt is enough.
bearerAuthAuthorizationBearer <token>application/json- body
The Table and write attempt to upload into, with the attempt's binding from the Tables API. partBytes is a power of two from 8 MiB to 1 GiB, 64 MiB unless set, and at most a request's memory budget; an upload holds at most 10,000 parts.
attempt*stringuuidmediaType*stringpartBytes?||nulltable*A Table identity and optional explicit storage. The host resolves omitted storage as the caller.
Success
application/json- response
A multipart upload of one blob into a write attempt, at attempts/<attempt>/blobs/<objectId> under the Table's root. The client keeps it and sends it with each part and with its completion; the storage provider keeps the upload's progress, so any instance serves any step. Every part but the last holds exactly partBytes, a power of two.
attempt*stringuuidmediaType*stringobjectId*stringuuidpartBytes*|tableId*stringuuiduploadId*stringcurl -X POST 'https://scandal.spiraldb.dev/blobs/uploads/start' \ -H 'Content-Type: application/json' \ -d '{ "attempt": "d2c50383-9b42-408a-bf30-8303c70e72c1", "mediaType": "string", "table": { "tableId": "073fbfcb-cd05-4203-be18-a1ce6f8e4d2d" }}'{ "attempt": "d2c50383-9b42-408a-bf30-8303c70e72c1", "mediaType": "string", "objectId": "e39ea5f2-2188-47f8-add0-f1976630af5e", "partBytes": "string", "tableId": "073fbfcb-cd05-4203-be18-a1ce6f8e4d2d", "uploadId": "string"}