拓冰建站拓冰建站
首页 / 资讯中心 / 正文

一条链接、零服务器存储:FilePizza 让浏览器直接 P2P 传大文件

一条链接、零服务器存储FilePizza 让浏览器直接 P2P 传大文件【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizzaFilePizza 是一个浏览器 P2P 文件传输工具。发送方和接收方各自打开网页两端直接建立连接文件在中间流动全程不经过任何中转服务器。整个 WebRTC 文件传输过程都发生在浏览器里好处很具体不用先传网盘再下载文件内容也不会落在服务器上。先画条线一条链接零中转 传统分享有个绕不开的环节——先把文件塞进网盘或某个托管空间对方再从那里取走。服务器卡在中间速度被你上传、他下载两段链路同时拖着文件本身还得被完整存一份。FilePizza 把这段路砍掉了选完文件数据就从你这边的浏览器内存直接流向对方浏览器内存快不快只取决于双方各自的家宽。slug 里装着什么服务器只发通讯录你选好文件后上传方浏览器会先到服务器登记换回一个 slug可以理解成一条地址。地址分短码和长码两种形态短码就几个字符长码由几个随机词拼成两者指向同一条传输通道。服务器上围绕 slug 存的只是元数据上传方此刻挂在网络上的 PeerJS 对等 ID、通道的密钥和到期时间。通道带 TTL期间会自动续期过期即失效。不装 Redis 时这些数据放在服务器内存里装了 Redis 就落到 Redis文件字节一个都没经过它。接收方点开链接服务器把上传方的 ID 交给他双方握手接通。服务器的活到这就干完了递出去的是地址簿不是包裹。数据通道文件字节怎么流动真正跑数据的是 WebRTC 数据通道Data Channel。通俗讲就是两个浏览器之间自己打通的一根管道DTLS 加密是管道自带的锁——WebRTC 标准内置的公钥加密不用你做任何配置。管子里跑的是一组 JSON 消息整场传输像一段约定好的对话接收方先发 RequestInfo问你有什么发送方回一份 Info列出文件名、大小、类型接收方用 Start 指明要哪个文件、从哪个偏移开始发送方把文件切成小块回传每个 Chunk 最多 256 KiB末尾用 final 标志位收尾每收一块接收方回一条 ChunkAck 确认全部取完发 Done 收场有这套确认机制断点续传才成立。连接掉线、或者接收方主动发 Pause 暂停重连后用 Start 带上最后已确认的偏移量发送方就从那个位置接着送不用从头再来。每条消息的字段细节仓库里这份文件传输协议文档都写清楚了。3 步建好一条传输链接 上手比想象中省事打开页面点选文件支持一次多选想加锁就填个密码不想就跳过页面生成链接发给对方接收方点进链接后若设过密码页面会先回 PasswordRequired 拦住等他发对 UsePassword 才肯亮出文件列表。随后点下载进度条实时走。上传方这边也能盯着进度随时喊停。有两点值得先说破发送方的窗口必须开到传输结束关掉浏览器链接当场失效——不过已经下完的人会把剩下的部分继续补给没下完的人文件大小没有硬上限天花板是浏览器自己吃得消多少。密码锁、ZIP 打包、手机上收文件 一次选了多个文件时对方拿到的不是一堆散件而是一个完整的 zip。关键在于打包不是先把整包压好再发而是流式 ZIP 打包模块边收边压数据按块流入即时缝进 zip 结构再交给 Service Worker 做流式落盘大文件也不会先吃爆内存。v2 版本把移动端也纳入范围大多数手机浏览器都能跑Mobile Safari 也在名单里出门在外用手机发文件不再卡关。30 秒自托管clone、装依赖、跑起来 ️想部署一套自己的三条命令就能启动$ git clone https://gitcode.com/GitHub_Trending/fi/filepizza $ pnpm install $ pnpm dev底下的技术组合都是熟面孔Next.js、React、TypeScript 搭页面Tailwind 管样式React Query 管状态PeerJS 负责 WebRTC 建连View Transitions 做页面转场Redis 按需存通道元数据。两台机器都躲在 NAT 后面直连不通时用COTURN_ENABLED、TURN_HOST这类环境变量接一个 coturn 做 TURN 中转即可。安全侧还留了举报通道接收方可以发起 Report上传方会广播给所有在传的连接并跳转举报页其余人随即中止下载。收尾文件走最短路线文件从你手里到对方手里最理想的路线就是别绕路。服务器只递一张地址包裹自己走路——这大概就是浏览器 P2P 文件传输最实在的浪漫。【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门