Object storage

Rust-owned object storage is for files and larger durable values that should not be copied into every context projection.

JavaScript
const object = await services.storage.put({
  key: "reports/daily.json",
  value: { customers: 42 }
});

const loaded = await services.storage.get({
  key: object.key,
  responseType: "json",
  ifVersion: object.version
});

Methods:

MethodBehavior
put({ key, value | text | bytesBase64, contentType?, overwrite?, ifVersion? })Atomically writes and returns an object reference. Create-only by default.
get({ key, responseType?, ifVersion? })Verifies checksum and returns { object, data }.
head({ key })Returns the reference or null without body.
list({ prefix?, limit?, cursor? })Key-ordered references; default 100, maximum 1,000.
delete({ key, ifVersion? })Removes one object; missing unconditional delete returns deleted: false.

References contain contract/version, logical key, content-derived version, SHA-256 checksum, size, and content type. Keys are logical names, not paths; absolute paths, traversal, backslashes, empty segments, NULs, and control characters are rejected. Local object maximum is 64 MiB. Back up the objects-v1 directory beside the state database together with that database.