跳转到内容
类型解锁
阶段快速获胜
难度简单
工作快速原型
用于后端开发者
用于个人创始人
服务管道
服务Exec
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型解锁
阶段快速获胜
难度简单
工作快速原型
用于后端开发者
用于个人创始人
服务管道
服务Exec
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型解锁
阶段快速获胜
难度简单
工作快速原型
用于后端开发者
用于个人创始人
服务管道
服务Exec
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
类型解锁
阶段快速获胜
难度简单
工作快速原型
用于后端开发者
用于个人创始人
服务管道
服务Exec
为何选 HoodyHTTP 原生
为何选 Hoody可嵌入性
PIPE · 浏览器 → STDIN

把拖拽上传接进你的脚本,零行上传代码

hoody-pipe 在它持有的每条路径上,已经自动提供一个网页上传表单。把文件拖到页面上,字节就通过管道流到你脚本的 stdin。你写了零行上传代码。

阅读 pipe 文档

无上传代码、无 S3 桶、无预签名 URL

一次拖拽如何变成一段流

hoody-pipe 在路径根处运行一个网页 UI,在 /noscript 提供无 JavaScript 的回退。两者都把 multipart 字节直接流给读取同一条路径的人。你的脚本读管道——这就是全部连接。

浏览器 → 管道 → stdin4 步 · 零处理器
  • 01

    选一条路径,分享 URL

    https://pipe.hoody.com/upload

    任何你没保留的路径都成为一条管道。这个 URL 就是上传页面。

  • 02

    用户在浏览器里拖入文件

    GET /api/v1/pipe — 自动托管的上传表单

    Hoody 帮你提供这个表单:拖放区、multipart 解析器、CSP nonce,全部内建。/noscript 为受限浏览器准备。

  • 03

    字节穿过管道

    PUT /api/v1/pipe/upload (multipart/form-data)

    第一个 multipart 部分被解包并流给接收端。无服务端暂存、无临时文件。

  • 04

    你的脚本读 stdin

    curl …/api/v1/pipe/upload | python process.py

    接收端和发送端在 5 分钟 TTL 内连上。脚本不知道自己背后是个网页——它只是读字节。

process.sh
# 1. 你的脚本读这条管道
$curl https://pipe.hoody.com/api/v1/pipe/upload | python process.py
# 2. 有人在浏览器里打开 https://pipe.hoody.com/upload,
# 把 invoice-q3.pdf 拖到页面上,
# 表单 PUT 把字节传给你。
# 3. 你的脚本处理 stdin 并完成
[OK]已保存到 /data/uploads/invoice-q3.pdf

管道就是上传服务器。你的脚本就是接收端。两者之间没有第三个进程——没有 Lambda、没有 API 网关、没有胶水函数——把拖放区和你的 stdin 隔开。

你不必再写的东西

下面每一项,如果让你为一个一次性上传器写,都是一天的活。管道把它们都内置好了。

网页表单

拖放区、文件选择、进度反馈

管道 UI 渲染拖拽区域、点击选择回退,以及进度反馈。/noscript 为没有 JS 的浏览器提供纯 HTML 表单——同一条路径,无需额外代码。

传输

Multipart 解析与流式转发

当浏览器 POST multipart/form-data 时,服务器提取第一个部分并流式转发。无 body 缓冲、无临时文件清理、无十行的 multipart 库。

安全

CSP nonce、MIME 防护、CORS 预检

表单自带新鲜的 CSP nonce。危险的内容类型(text/html、image/svg+xml、application/javascript)在抵达你之前会被改写为 text/plain。OPTIONS 处理跨域预检。

连接

接收端先连或发送端先连,你说了算

在有人上传之前先跑你的脚本,或之后再跑都行——管道会保持连接,直到双方都到位,最多 5 分钟 TTL。接收端数量(n)可配置,最多 256。

这取代了什么

并排对比:你本来要搭的上传链路,与你只需要指向脚本的那个 URL。

关注点你本要写的Hoody 直接给你的
  • 上传表单Flask app + dropzone.js + CSSGET /api/v1/pipe — 已经是表单
  • Multipart 解析Multer / formidable / busboy第一段在传输中即被解包
  • 存储S3 桶 + 预签名 URL 端点直接流入你的脚本
  • 路由API Gateway + Lambda + IAM选一条路径,那就是路由
  • 禁用 JS 回退第二份服务端渲染表单/noscript 免费提供
  • 安全头CSP、nonce、CORS、MIME 防护随管道附带

你写脚本。Hoody 写上传表单。

你交付的

process.py — 读 stdin,干活

while read chunk; do …
HOODY 交付的

页面、表单、解析器、安全

GET /api/v1/pipe — 自动托管
阅读 pipe 文档

这取代了什么

开发者在需要一次性文件上传时常用的那些方案。每一个都收一笔搭建税——要开桶、要装中间件、要轮换签名密钥。管道只是一个 URL。

  • AWS S3(预签名 URL + 桶)开桶、签 URL、设过期
  • 自定义路由端点为每次上传手写一个,然后被遗忘
  • Multer / formidable 中间件要装、要照看的 multipart 库
  • 托管型 dropzone 服务第三方 SaaS,独立账单
  • S3 + Lambda 上传链路为一个表单配两个服务加 IAM 胶水
  • Filestack / Uploadcare厂商 SDK、厂商锁定、厂商定价

选一条路径。读这条管道。上传表单已经在那个 URL 上跑着了。

阅读 pipe 路由指南

阅读其他内容