向命令发送输入
请求体就是要发送的字节本身,除非它的 Content-Type 以 application/json 开头:那时请求体为 StdinRequest。命令必须以 stdin、stdin_open 或 tty 启动。在终端上,eof 会键入输入结束符 (Ctrl-D),而不是关闭什么。请求体最大 64 MiB(超出时返回 413 body_too_large):更长的输入要分多次调用发送。
所需权限范围:exec,或带 exec 的沙箱令牌。
POST
https://api.glac.ai/v1/sandboxes/{id}/exec/{exec_id}/stdin授权
路径参数
查询参数
请求头参数
请求体JSON可选
JSON,或字节本身。
Request body
OCTET-STREAMReturns
204
命令已收到这些字节。
400
请求不符合本调用的要求。invalid_json:请求体不是 JSON 对象;unknown_field:请求体中有本调用不接受的字段;unknown_parameter:查询中有本调用不接受的参数;invalid_field:某个字段或查询参数类型错误或超出范围;invalid_idempotency_key:Idempotency-Key 为空或超过 255 个字符。
JSON
401
missing_api_key, invalid_api_key, expired_api_key, invalid_token.
JSON
403
凭据无权执行此操作。token_scope:沙箱令牌缺少所需的权限范围。spend_limit_reached:沙箱因达到支出上限而被冻结;它会连同数据一起休眠,直到上限提高。
JSON
404
请求中指定的对象不存在。sandbox_not_found:沙箱不存在;exec_not_found:沙箱中没有该命令。
JSON
409
某个对象的状态不允许此操作。stdin_closed:命令的输入已关闭;sandbox_failed:沙箱处于 failed 状态;idempotency_key_reused:该键已与另一个请求体一起使用过;idempotency_in_progress:使用该键的第一个请求仍在执行。
JSON
default
其他任何失败,格式相同。internal (500):节点出错;错误信息不会多说,节点日志中以请求的 id 记录了原因。unavailable(503,可重试):no_capacity,节点的网络槽位都已占用;memory_full,调用需要启动的虚拟机(创建、唤醒、从磁盘启动、恢复、回滚、构建)在宿主机内存中放不下(还要算上已承诺给其上运行的虚拟机的内存),也没有暂停或空闲的虚拟机可以让其休眠来腾出空间(节点的 memory);drive_full,调用需要构建模板,而节点的数据盘没有空间(节点的 drive);unavailable,节点正在关闭、沙箱 10 分钟后仍处于 starting、沙箱没有响应,或者沙箱正在迁到本节点(带 Retry-After: 1);fenced,节点的租约隔离了该沙箱 (Node.lease)。moved (409):沙箱已迁到另一个节点,由 to 指明。
JSON