File uploads on the wire
Catalog hints
Parameters may be classified for QA pickers:
params[].kind | Meaning |
|---|---|
json | Default — JSON-only. |
file | Single file argument. |
files | Array of files. |
Nested object paths use filePaths (single) and fileArrayPaths (arrays).
Placeholders (JSON-safe)
Wire arguments use placeholders only where the catalog allows:
| Shape | Use |
|---|---|
{ "__qaFileRef": "<uploadId>" } | In-memory upload store (ref mode). |
{ "__qaFileRefs": ["id1","id2"] } or array of ref objects | Multiple refs. |
{ "__qaFileUrl": "https://…" } | URL mode with host fileUrl policy. |
{ "__qaFileUrls": [ … ] } or array of url objects | Multiple URLs. |
Do not combine __qaFileRef and __qaFileUrl on the same leaf.
Embedded WebSocket (QA_UPLOAD_*, v8+)
When startInspectorWebSocket({ upload: { enabled: true }}):
- Client sends JSON:
QA_UPLOAD_START,QA_UPLOAD_CHUNK(b64field),QA_UPLOAD_FINISH,QA_UPLOAD_ABORT. - Server replies with
QA_UPLOAD_ACK,QA_UPLOAD_PROGRESS,QA_UPLOAD_COMPLETE, orQA_UPLOAD_ERROR.
Chunk encoding matches the Socket.IO ref-upload contract documented in sdk/ts/docs/protocol-client.md.
Socket.IO
Ref uploads use qa:upload:* events; host media streaming uses qa:hostMedia:* when enabled (protocol v10). See Socket.IO transport.
Scope
Host Minio / qa:hostMedia:* is available on Socket.IO in v10+ when configured — not on the embedded ws server. For embedded-only hosts, enable upload on WebSocket or use separate HTTP upload APIs.