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:
| Method | Behavior |
|---|---|
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.