Send a file with a token
Services authenticate with a signed Bearer token and post the file.
Zebra keeps every file as content-addressed blocks and writes its own index into the same store. Copy the folder to a new server and everything, names included, comes with it.
Services authenticate with a signed Bearer token and post the file.
The file is chunked into blocks and addressed by its content. The same bytes always give the same address.
Name, type and size are appended to a namespaced DAG log stored beside the blocks.
POST /storage
Authorization: Bearer <token>
Content-Type: multipart/form-data
multipleFiles=@invoice.pdf{
"urls": [
"/storage/bafkrei…q7oie/invoice.pdf"
]
}Same file in, same CID out.
{
"namespace": "smartstock-storage",
"op": "add",
"prev": { "/": "baguqee…" },
"file": {
"name": "invoice.pdf",
"type": "application/pdf",
"content": { "/": "bafkrei…" }
}
}curl -X POST $HOST/storage \
-H "Authorization: Bearer $TOKEN" \
-F "multipleFiles=@file.png"curl $HOST/storage/$CID/file.png \
-H "Authorization: Bearer $TOKEN" \
-o file.pngTokens are minted by an admin in the console, scoped to write or read + write, and stay valid until an admin revokes them.
Names and types live in the store, not in a side database.
One folder holds blocks, index and keys. Pin it to a server or move it.
Check every file's blocks, or rebuild the index straight from the store.