
Sechzig Container auf einem Server
Eine Bare-Metal-Box führt Dutzende bis Hunderte von Hoody-Containern aus. KSM und BTRFS-Dedup machen die Marginalkosten nahezu null.
hoody-pipe liefert bereits auf jedem Pfad, der ihm gehört, ein Web-Upload-Formular. Zieh eine Datei auf die Seite, die Bytes streamen durch die Pipe direkt in das stdin deines Skripts. Du hast null Zeilen Upload-Code geschrieben.
Datei ablegen oder zum Hochladen klicken
beliebige Größe · beliebiger Typkein Upload-Code, kein S3-Bucket, keine Presigned URLs
hoody-pipe liefert eine Web-UI am Pfad-Root und einen JavaScript-freien Fallback unter /noscript. Beide streamen Multipart-Bytes direkt an denjenigen weiter, der denselben Pfad liest. Dein Skript liest die Pipe — das ist die ganze Verkabelung.
https://pipe.hoody.com/uploadJeder Pfad, den du nicht reserviert hast, wird zur Pipe. Die URL ist die Upload-Seite.
GET /upload — automatisch ausgeliefertes Upload-FormularHoody liefert das Formular für dich: Drop-Zone, Multipart-Parser, CSP-Nonce, alles enthalten. /noscript existiert für eingeschränkte Browser.
PUT /api/v1/pipe/upload (multipart/form-data)Der erste Multipart-Teil wird ausgepackt und an den Empfänger gestreamt. Kein Server-Staging, keine temporären Dateien.
curl …/api/v1/pipe/upload | python process.pyEmpfänger und Sender verbinden sich innerhalb einer 5-Minuten-TTL. Das Skript weiß nicht, dass es hinter einer Webseite steht — es liest einfach die Bytes.
Die Pipe ist der Upload-Server. Dein Skript ist der Empfänger. Es gibt keinen dritten Prozess — kein Lambda, kein API Gateway, keine Glue-Funktion — zwischen Drop-Zone und deinem stdin.
Jeder Punkt unten ist ein normales Tagewerk, wenn du einen einmaligen Uploader bauen willst. Die Pipe bringt all das mit.
Die Pipe-UI rendert eine Drag-and-Drop-Fläche, einen Klick-zum-Auswählen-Fallback und Fortschrittsanzeige. /noscript liefert ein reines HTML-Formular für Browser ohne JS — gleicher Pfad, kein zusätzlicher Code.
Wenn der Browser multipart/form-data POSTet, extrahiert der Server den ersten Teil und streamt ihn. Kein Body-Buffering, kein Aufräumen temporärer Dateien, keine zehnzeilige Multipart-Library.
Das Formular kommt mit einer frischen CSP-Nonce. Gefährliche Content-Types (text/html, image/svg+xml, application/javascript) werden zu text/plain umgeschrieben, bevor sie dich erreichen. OPTIONS übernimmt den Cross-Origin-Preflight.
Starte dein Skript bevor jemand uploadet, oder danach — die Pipe hält die Verbindung bis zu einer 5-Minuten-TTL offen, bis beide Enden da sind. Empfängerzahl (n) ist konfigurierbar bis 256.
Seite an Seite: die Upload-Pipeline, die du gebaut hättest, gegen die URL, auf die du dein Skript zeigst.
Du hast das Skript geschrieben. Hoody hat das Upload-Formular geschrieben.
process.py — stdin lesen, die Arbeit machen
while read chunk; do …die Seite, das Formular, den Parser, die Security
GET /upload — automatisch ausgeliefertDie Patterns, zu denen Entwickler greifen, wenn sie einen einmaligen Datei-Upload brauchen. Jedes davon kostet Setup-Steuer — Buckets bereitstellen, Middleware installieren, Signing-Keys rotieren. Die Pipe ist eine URL.
Pfad wählen. Pipe lesen. Das Upload-Formular ist auf dieser URL bereits live.