终端 A — 发送端
$ curl -T report.pdf \
https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/report
[信息] 等待接收端...
[信息] 正在流传到 1 个接收端...
[信息] 传输完成。
终端 B — 接收端
$ curl https://abc123-def456-pipe-1.node-us-1.containers.hoody.com/api/v1/pipe/report \
-o report.pdf
% Total report.pdf
100 2.4M 100 2.4M 0 0 1.8M
数据穿流而过,而非留存其中
每一个字节实时到达接收方。服务器是一根导线,不是仓库。
来源
发送端
管道服务器
零存储 · 最多 256 接收方
接收方
接收端
发送方建立连接
发送方通过 POST 或 PUT 请求任意路径。服务器等待接收方连接——最长等待 5 分钟。
字节逐字节传输
数据逐字节流经网络,零缓冲,无临时文件,无上传步骤。
接收方接入
接收方 GET 同一路径即可拉取实时流。单个发送方最多可扇出至 256 个接收方。
常见管道组合
大多数示例只需两条 curl 命令——一条发送,一条接收。
哪些内容可以流过管道
任何非可执行脚本的 Content-Type 都会原样透传。危险的 MIME 类型会被重写为 text/plain——数据不会丢失,XSS 得到防止。
application/octet-streamPUT → GET二进制文件、压缩包、图片
/api/v1/pipe/{path}text/plainPOST → GET日志、stdin、配置、stdout 流
/api/v1/pipe/{path}multipart/form-dataPOST → GET浏览器文件上传(仅首个 part)
/api/v1/pipe/{path}video/webm, video/mp4PUT → 浏览器屏幕共享、录制视频
/api/v1/pipe/{path}?videotext/event-stream (SSE)GET 观察方进度监控、速度/预计时间/状态
/api/v1/pipe/{path}?progresstext/html(已重写)PUT → GET转发前重写为 text/plain——防止 XSS,数据不丢失
/api/v1/pipe/{path}自定义请求头PUT → GETX-Hoody-Pipe、X-Piping 元数据透传
/api/v1/pipe/{path}所有接口均位于 /api/v1/pipe/[path]。方向说明谁写入、谁读取。
专为高吞吐构建
每台服务器强制执行硬性限制。容量满时返回 HTTP 429,路径过长时返回 HTTP 414。
256
单路径最大接收方数
1,000
待建立的未连接连接数
1,000
同时进行中的流数
5 分钟
触发 HTTP 408 驱逐的 TTL
1,024
路径最大字符长度
9 个接口,两条最关键的命令
POST 或 PUT 发送,GET 接收,其余均为可观测性接口。
可观测性与 UI
6 个端点GET /api/v1/pipe/health → 200 { status, service, built, started, memory, … }
数据传输
3 个端点POST 或 PUT 发送 · GET 接收