项目简介

FilePizza 是一个基于 WebRTC 技术实现的 开源点对点文件传输工具。与传统的上传-下载式文件共享不同,FilePizza 允许用户直接将文件从浏览器中“投递”给他人,无需先上传至服务器。

当用户选择文件后,应用会生成一个链接。其他人点击这个链接后,FilePizza 利用 WebRTC 建立点对点连接,文件直接从发送者的浏览器传到接收者的浏览器,实现真正的端到端传输。

特点亮点

  • 🧠 无需注册、开箱即用:用户只需选择文件,即可生成可分享链接,访问即可接收。
  • 🔒 端到端传输:文件不会存储在中间服务器上,确保隐私和传输安全。
  • 🚀 基于 WebRTC 的高效传输:利用 WebRTC 建立连接,速度快、延迟低。
  • 🖥️ 纯前端交互 + Node.js 中继服务器:中继服务器仅用于信令交换,不处理实际文件数据。
  • 💻 开源可自部署:支持部署自己的中继服务器,适合内网/公司场景。

技术架构

  • 前端:React + WebRTC
  • 后端:Node.js(用于传递信令信息)
  • 通信协议:WebRTC DataChannels 实现真正的 p2p 文件数据传输
  • 文件大小限制:理论上取决于浏览器和网络条件,未依赖后端存储限制

典型应用场景

  • 快速将大文件发送给朋友,而无需上传到网盘
  • 跨网络设备直接传文件(如手机 ↔ 电脑)
  • 公司内网中快速传输数据,无需部署共享盘
  • 临时、安全地发送敏感文件(如代码、配置等)

自部署建议

对于有内网需求或隐私性要求的用户,推荐将 FilePizza 自部署。部署步骤大致如下:

  1. 克隆仓库:
git clone https://github.com/kern/filepizza.git
  1. 安装依赖并启动服务:
npm install
npm start
  1. 配置 Nginx 或反向代理,以支持 WebSocket 通信(用于 WebRTC 信令)。

类似项目对比

项目技术是否点对点服务器负载特点
FilePizzaWebRTC✅ 是低,仅信令极速、安全
SnapdropWebRTC✅ 是低,仅发现用UI 像 AirDrop
WeTransfer上传-下载❌ 否高,需存储适合持久分享
Firefox Send(已关闭)上传-下载❌ 否支持加密分享

推荐理由

我强烈推荐 FilePizza 给追求快速、轻量、安全文件传输体验的开发者和技术爱好者。特别是它无需中转上传的特性,在隐私保护和文件速度传输方面都有显著优势。