Write Volume File
Writes a file atomically. The first stream message must be the header (volume, path, mode — 0 means 0644); the rest are data frames. The body is capped at 64 MiB (InvalidArgument beyond it). A full volume returns ResourceExhausted. Returns FailedPrecondition if the volume has never been mounted (its node is not known yet) or its node is unreachable, and Unimplemented when the volume file API is not configured.
Access: operator or admin role in the volume's namespace, or a platform admin.
Authorization
BearerAuth A namespace-scoped API key (cpk_…) for machines, or a Xeonr Auth OIDC
token for humans. The key's namespace and role are pinned server-side.
In: header
Header Parameters
Define the version of the Connect protocol
Define the timeout, in ms
Request Body
application/connect+json
A single frame over the 64 MiB per-write limit is always refused.
bytelength <= 67108864Response Body
application/connect+json
application/connect+json
curl -X POST "https://containers.xeonr.io/containers.api.v1.VolumeService/WriteVolumeFile" \ -H "Connect-Protocol-Version: 1" \ -H "Connect-Timeout-Ms: 1000" \ -H "Content-Type: application/connect+json" \ -d ''{
"info": {
"path": "string",
"size": "string",
"mode": 0,
"isDir": true,
"sha256": "string",
"mtimeUnix": "string",
"symlinkTarget": "string"
}
}{
"code": "not_found",
"message": "string",
"details": [
{
"type": "string",
"value": "string",
"debug": {}
}
]
}Stat Volume File POST
Returns metadata for one path on the volume. `sha256` is never populated. Returns FailedPrecondition if the volume has never been mounted (its node is not known yet) or its node is unreachable, and Unimplemented when the volume file API is not configured. **Access:** any role in the volume's namespace, or a platform admin.
Workspaces
Durable file API over content-addressed object storage — read/write/copy/move, snapshots and zip import/export.