不经过服务器:FilePizza 让你 5 分钟搭起浏览器点对点文件传输
2026/9/17 22:24:00 网站建设 项目流程

不经过服务器:FilePizza 让你 5 分钟搭起浏览器点对点文件传输

【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza

FilePizza 是一个在浏览器内完成点对点文件传输的开源项目:它基于 WebRTC(让两个浏览器之间建立加密直连的技术)把你的文件和对方的浏览器直连,全程不经过任何中间服务器。你选完文件后会得到一条分享链接,把链接发给对方即可直接下载,无需注册、无需等待上传到网盘。项目用 Next.js 与 React 构建,界面支持深色模式,也可以在手机浏览器里使用。

💡 它解决什么问题

设想两个场景:你要把一个 2GB 的录屏发给客户,传统网盘要先注册、等上传完成、再等对方下载;或者你要发送敏感文档,不想让内容被存在某个公司的服务器上。FilePizza 就是为这类场景设计的——文件在两个浏览器之间直接传送,服务器只负责转发"接头信息"(信令),从不接触文件内容。

✨ 核心功能亮点

直连传输,进度可见、可中止

上传页面上能看到每个连接者的下载进度,想结束时点一下停止即可,对方的下载随之结束。

多文件一次传,对方直接收 zip

一次勾选多个文件没问题,下载端会收到自动打包好的 zip 文件,不用逐个下载再解压。

密码保护与举报双保险

可以为分享链接设置一个可选密码,对方输对密码才能看到文件清单;遇到违规内容时,页面提供举报入口,被举报后上传者页面会跳转到举报页,并通知当前所有下载端中止传输。

流式下载,边下边存

下载端通过 Service Worker(浏览器中的后台任务机制)把数据到达的部分即时写入磁盘,不用等整份文件传完才开始保存。

🚀 5 分钟本地跑起 FilePizza

最短路径是从源码直接运行:

git clone https://gitcode.com/GitHub_Trending/fi/filepizza pnpm install pnpm dev

在浏览器打开本地开发地址即可开始上传。如果你需要生产环境,仓库还通过 Docker Compose 提供了现成的构建与启动脚本,一条命令就能把整套服务拉起来。

🔍 工作原理:浏览器之间如何直传

整个流程分三步:

  1. 上传者的浏览器向服务器申请一个频道,获得一条带 8 位短码的分享链接。服务器只保存频道的元数据(默认 1 小时后过期),文件内容从不落盘。
  2. 下载者打开链接,服务器把短码还原成上传者的 PeerJS 标识(相当于建立直连用的"电话号码"),双方通过信令通道交换握手信息。
  3. 两个浏览器之间建立直连数据通道。文件被切成不超过 256KiB 的块依次发送,接收端对每个块做确认,中途断开后可以从最后确认的偏移处断点续传。

也就是说,文件内容始终只在你和对方的浏览器之间流动。

⚙️ 部署与自定义:最小配置清单

环境变量用途默认值
REDIS_URL存放频道元数据的 Redis 连接串,不设置则回退到内存存储未设置
COTURN_ENABLED设为true时启用 TURN 中继,帮助 NAT 后的对等方打通直连不启用
TURN_HOSTTURN 服务器地址127.0.0.1
TURN_REALM生成 TURN 凭证时使用的领域file.pizza
STUN_SERVER未启用 TURN 时使用的 STUN 服务器(帮助浏览器获知自己的公网地址以便直连)stun:stun.l.google.com:19302
PEERJS_HOST自托管 PeerJS 信令服务器地址0.peerjs.com
PEERJS_PATH自托管 PeerJS 服务器的路径/

❓ 常见问题

文件会存在我部署的服务器上吗?不会。内容在浏览器之间直传,服务器只做链接解析与信令。唯一的代价是上传方要一直开着页面,直到传输结束。

同一条链接能发给多个人吗?可以。把同一条短链接发给任意多人,上传页会列出所有当前连接者,方便你逐个管理。

文件大小有上限吗?没有硬性上限,实际极限取决于浏览器内存与网络状况,大文件建议在网络稳定的环境里测试。

上传方关掉页面后会怎样?链接无法再发起新的下载。但已经下载完成的人会继续为未完成的人做"种子",后者可以接着下完。

传输是加密的吗?WebRTC 通道由 DTLS(通道的密钥交换与加密层)自动加密。若再叠加密码保护,只有输对密码的人才能获取文件清单并开始下载。

📚 延伸阅读

  • 文件传输协议规范:定义上传与下载的全部消息类型与完整对话流程,照着它就能实现一个兼容客户端。
  • Docker Compose 配置:本地多容器部署的入口。
  • 许可证:项目以 BSD 3-Clause 许可证发布,披萨插图致谢 iblowyourdesign。

想要一种"中间方摸不到内容"的文件分享方式,FilePizza 提供了私密且开箱即用的答案——把仓库克隆下来跑起来,5 分钟内你就能发出第一份文件。

【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询