FilePizza 是一个开源的点对点(P2P)文件传输工具,完全基于浏览器运行,无需中间服务器存储数据。该项目由 Alex Kern 和 Neeraj Baid 在加州大学伯克利分校开发,旨在提供一种快速、安全、私密的文件分享方式。
🔧 核心功能与技术特点
点对点传输:利用 WebRTC 技术,文件从发送者浏览器直接传输到接收者浏览器,避免了传统上传-下载流程中的中转服务器,提高了传输速度和隐私性。
无需安装:用户只需访问 file.pizza,选择要分享的文件,即可生成一个临时链接,分享给接收者。
现代化界面:FilePizza v2 引入了全新的用户界面,支持暗黑模式,并兼容大多数移动浏览器,包括 Mobile Safari。
多文件支持:支持一次上传多个文件,接收者将以 ZIP 格式下载所有文件。
安全性增强:提供密码保护功能,发送者可监控传输进度,并在需要时中止传输。
流式下载:通过 Service Worker 实现流式下载,提升用户体验。
可自托管:支持使用 Docker 进行自托管部署,适合企业或开发者在私有环境中使用。
🧑💻 技术栈与开发支持
FilePizza 的前端采用 Next.js、React、TypeScript 和 Tailwind CSS 构建,后端使用 PeerJS 实现 WebRTC 通信,Redis 用于存储服务器状态。项目支持使用 pnpm 进行开发和构建,也提供了 Dockerfile 和 docker-compose 文件,方便部署。
🚀 使用方法
访问 file.pizza。
选择要分享的文件(可选设置密码)。
生成并复制分享链接。
将链接发送给接收者。
接收者打开链接,即可直接从发送者浏览器下载文件。
请注意,发送者需保持浏览器窗口打开,直到文件传输完成。
📦 自托管部署
FilePizza 支持自托管,适合需要在私有环境中使用的用户。您可以使用以下 Docker 命令进行部署:
部署时,您需要提供有效的 HTTPS 证书和密钥,以确保 WebRTC 的正常工作。此外,您还可以配置自定义的 STUN/TURN 服务器,以优化在 NAT 或防火墙后的连接性能。