Xeonr Developer Docs

Write Volume File

POST
/containers.api.v1.VolumeService/WriteVolumeFile

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
AuthorizationBearer <token>

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

Connect-Protocol-Version?number

Define the version of the Connect protocol

Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/connect+json

data?string

A single frame over the 64 MiB per-write limit is always refused.

Formatbyte
Lengthlength <= 67108864

Response 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": {}
    }
  ]
}