
浏览器里搞定点对点文件传输FilePizza 三步上手【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza周五晚上客户甩来一个 800MB 的渲染源文件邮件附件卡住传网盘要会员。FilePizza 给了另一条路两边都开个浏览器P2P点对点不经过中间机器直连文件不经过任何中转服务器直接过去。FilePizza 能干什么、适合谁免上传文件从你的浏览器直达对方浏览器起步速度不受先传到服务器限制免注册拖文件、点开始几秒钟就拿到分享链接多人并发下载同一条链接发给几个人各自从你本机拉取可选密码链接可以外传内容要不要给你说了算移动端可用多数手机浏览器能直接接收对方躺床上也能收要建立的预期只有一条发送方的页面必须保持打开文件只存在于你的浏览器里关 tab 链接就失效——它不是网盘不适合长期托管文件。发送方与接收方一次完整传输怎么走发送方视角生成分享链接打开页面把文件拖进虚线区或点击添加见 src/components/AddFilesButton.tsx在密码框输入密码留空则无需密码点击开始按钮src/components/StartButton.tsx页面显示长短两个 URL 加一个二维码复制链接发给对方下方连接列表实时显示谁在下载、传到哪想中止就点 src/components/StopButton.tsx接收方视角粘贴链接下载打开链接连接建立后自动显示文件列表和大小有密码的传输会先弹出密码框输对才展示文件点击下载进度条按已接收字节数实时刷新多个文件会自动合成一个 zip下载完解压即可进阶技巧密码、多文件打包与断点续传密码保护怎么设坑在哪场景文件要走公开渠道防链接泄露变内容泄露。开启方式点开始前在密码框填上密码接收方开门见山先输密码。坑密码只是传输门槛不是文件内容本身的加密——敏感文件建议先自己加密再传。多文件接收自动打成 zip场景整个素材文件夹一次发出去。不用逐个点接收端会把多个文件流式打包成一个 zip 落盘打包与写入逻辑在 src/utils/download.ts。坑只对 2 个及以上文件生效单文件按原名保存。中断之后暂停与断点续传场景接收方网络不稳或中途有事要下线。协议定义了 Pause 与按已确认 offset 重发 Start 的恢复机制接收方重连后从断点继续不用从零再来。排错手册连不上、卡住、中断先查这三项接收方连不上检查发送方的浏览器页面是否还开着发送方关页即断确认链接是否过期通道存活约 1 小时且靠发送方页面存活自动续期过期了让发送方重新生成重新生成链接再发别反复点旧链接传输卡住、速度起不来检查双方网络一个千兆一个 4G瓶颈永远在慢的那边确认双方是否都在运营商级 NAT 后私有化部署可开启 TURN 中继相关环境变量见 src/config.ts减少同时下载人数并发越多单路分到的带宽越少传输中断了接收方重开原链接走断点续传恢复发送方点停止可主动终结传输也可以等全部下完自然结束页面提示 Could not connect to the uploader 时基本就是发送方关了浏览器原理速览数据到底走了哪条路服务器只负责查地址发送方建通道拿到 slug接收方凭链接找到发送方的对端 ID之后 WebRTC 数据通道直连文件内容一个字节都不落服务器。完整消息协议见 docs/file-transfer-protocol.md。本地跑起来两种方式容器方式git clone https://gitcode.com/GitHub_Trending/fi/filepizza cd filepizza pnpm docker:build pnpm docker:up源码方式pnpm install pnpm dev生产构建用pnpm build后pnpm startRedis、TURN、PeerJS 地址等环境变量的取值与默认值看 README 的 Configuration 一节即可不配置时自动退回内存存储。发送大文件时发送方页面从头开到底关 tab 等于断网走公开渠道分享顺手设个密码链接失效别硬刷让发送方重新生成私有化部署遇 NAT 打洞失败开 TURN 中继下次再遇到那个 800MB 的源文件打开浏览器复制链接就行。【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考