FilePizza:三条命令跑通的浏览器点对点传文件方案
【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza
FilePizza 是一个浏览器点对点(P2P)传文件工具。你在浏览器里选中文件,它直接传到对方浏览器里,中间不经过任何上传服务器。
🔌 为什么不用网盘和中转服务
大多数"传文件"工具其实是三步:你上传,服务器暂存,对方再下载。FilePizza 把中间那步去掉了。
- 给朋友发一个大视频或设计稿,不用先等云端上传、再让对方限速下载。这里你和对方直连,速度取决于两边带宽。
- 文件比较敏感,不想落到别人服务器上。FilePizza 的服务器只做"牵线",文件本体不经过它。
- 一份文件要发给好几个人。把链接分享出去,每个人的浏览器各自和你建立直连。
🚀 三条命令跑起来
git clone https://gitcode.com/GitHub_Trending/fi/filepizza cd filepizza && pnpm install pnpm dev只需要 Node 18+ 和 pnpm。不配置 Redis 时用内存存储,个人体验足够。
换成 Docker 跑
pnpm docker:build pnpm docker:up这套部署会一起启动 Redis 和 COTURN。COTURN 是帮助两端在 NAT 后面连通的中继服务,服务跑在本机 8080 端口。
📡 文件是怎么到对方手里的
流程分三步。你把文件丢进浏览器,服务器创建一个频道并给出带短 slug(短标识)的链接。
对方打开链接后,服务器把你的浏览器 Peer ID(对等体编号)告诉他。之后所有数据都走 WebRTC 数据通道,也就是两个浏览器之间直接建立的可靠连接。
文件被切成 256KB 的块,每块都要对方确认后才发下一块。整个过程由 DTLS 加密,你还能额外设一个下载密码。传多个文件时,对方收到的是一个 zip。完整消息流程见 文件传输协议文档。
⚙️ 按需才要看的东西
默认配置开箱即用,公开部署时才需要动这些:
| 环境变量 | 作用 |
|---|---|
REDIS_URL | Redis 连接串,不设置就用内存存储 |
COTURN_ENABLED | 设为true启用 TURN 中继 |
TURN_HOST/TURN_REALM | TURN 服务器地址与凭证域 |
STUN_SERVER | TURN 关闭时使用的 STUN 服务器 |
PEERJS_HOST/PEERJS_PATH | 自托管 PeerJS 服务器地址和路径 |
另外内置了几个实用能力:上传者能看进度、随时停止传输;有违规举报入口;Service Worker 支持大文件流式下载。Redis 与 COTURN 一起启动的配置在 docker-compose.yml。
你可能想问的几件事
关掉浏览器会怎样?链接失效,不能再发起新下载。但已下载完成的浏览着会继续给没下完的人分享文件。
文件大小有上限吗?服务端没有限制,上限是你的浏览器内存和耐心。
文件加密吗?加密。WebRTC 通道默认加密,还可以再加一层密码。
能同时给多人下载吗?能。把同一个链接发给每个人,他们的浏览器各自和你直连。
🍕 动手试试
FilePizza 是一个小巧完整的浏览器 P2P 传文件工具,几条命令就能部署,文件全程不出浏览器。克隆下来,把第一条直连发给你的朋友吧。
【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考