Documentation menu
Encrypted objects
Resume uploads and publish immutable objects with their document references in one transaction.
On this page
Begin and resume
POST this body to /api/v1/uploads. Keep the returned upload ID and reserved object identity. GET /uploads/:id reports current parts; repeating initiation returns the original receipt. PUT exact part bytes to /uploads/:id/parts/:index with application/octet-stream. Different bytes cannot replace an accepted part.
{
"requestId": "asset-upload-v1",
"name": "design.bin",
"totalSize": 1024,
"contentType": "application/octet-stream"
} Publish the object and reference
Put complete_upload and an insert containing the reserved object link later in the same transaction. Completion validates parts and publishes the immutable manifest together with the authorized document reference.
{
"requestId": "publish-asset-v1",
"operations": [
{
"op": "complete_upload",
"uploadId": "use-returned-upload-id"
},
{
"op": "insert",
"collection": "assets",
"key": "design",
"value": {
"file": {
"$object": "use-reserved-object-id"
}
}
}
]
} Download authenticated windows
GET /objects/:id streams authenticated parts in the selected protection mode with backpressure. HEAD reports metadata. A single byte range supports suffix and open ranges; ETags permit cache validation. Downloads are attachments.
Objects use 4 MiB parts and permit up to 16 GiB per object; an embedded read returns at most 16 MiB. Abort only removes unpublished uploads. Published-object deletion and reference-aware retention remain unfinished.