ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

FilePizza:浏览器间 WebRTC 直连传文件,3 步发出去

FilePizza:浏览器间 WebRTC 直连传文件,3 步发出去 FilePizza浏览器间 WebRTC 直连传文件3 步发出去【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza为什么每次分享文件都要先上传到某个云端再让别人下载上传慢、占流量文件还在陌生服务器上躺了一段时间——隐私和速度双双受损。FilePizza 的思路正好相反它是一个基于 WebRTC 的浏览器文件传输工具数据从你的浏览器直发对方浏览器中间服务器只负责介绍认识不碰内容。3 步发出第一个文件上手比想象中快不需要注册也不需要装任何东西打开 FilePizza 的网页官方实例是 file.pizza选中要分享的一个或多个文件需要的话顺手设置一个密码把生成的短链接发给对方然后——重点来了——保持浏览器窗口开着直到传输结束。对方的下载进度是实时可见的中途想中止也可以随时停止。整个过程里文件没有任何一秒存放在第三方机器上。文件为什么不过服务器幕后的门道其实不复杂用大白话讲就是先牵线再直连你上传文件时服务器会发给你一个短代码slug里面编码了你这台浏览器的 PeerJS 连接标识对方点开链接服务器把这个代码翻译成你的连接标识交给对方剩下的全部发生在这两个浏览器之间——WebRTC 数据通道直接打通服务器退场。传输本身切成小块进行每块最大 256 KiB对方收到后回一个确认ChunkAck确认到了下一块才发。这样哪怕网络中途抖了一下也不用从头再来。想暂停发个 Pause 就行重新连上后从上次确认的偏移量继续拉取断点续传就是这么实现的。整套消息的完整定义写在 传输协议文档 里想深挖可以看。进阶玩法多个文件怎么办一次选多个文件接收方会自动收到一个 zip 包。打包是在流式过程中边传边压由 打包模块 实现不会先把整包读进内存。想加把锁创建分享时设置密码对方第一次请求文件信息时会被要求先输密码输对了才看得到文件清单。手机能用吗v2 版本适配了主流移动浏览器包括 iOS 的 Safari手机发、手机收都没问题。想自己部署克隆仓库后装依赖、跑起来即可git clone https://gitcode.com/GitHub_Trending/fi/filepizza pnpm install pnpm dev生产环境如果要处理双方都在 NAT 后面的情况需要配置 TURN 服务器相关环境变量见 coturn 配置再配合 docker-compose 部署。快速问答关浏览器会怎样链接立刻失效别人再也发起不了新下载。所以分享期间窗口别关。文件能有多大没有写死的上限瓶颈是你的浏览器和设备内存多大多大只要你的浏览器扛得住。传输加密吗默认加密。WebRTC 通道自带 DTLS 加密再叠加可选密码就是两层保险。能多人同时下载吗可以把同一个链接发给几个人就行。技术选型与延伸前端是 Next.js React TypeScript样式用 Tailwind状态管理交给 React QueryWebRTC 通过 PeerJS 完成握手。服务器端很轻通道元数据可存入 Redis不存就用内存兜底。本质上FilePizza 把服务器的角色压缩到了最小发个代码、传个标识仅此而已。文件走哪、多快、多安全全部由你的浏览器说了算。【免费下载链接】filepizza:pizza: Peer-to-peer file transfers in your browser项目地址: https://gitcode.com/GitHub_Trending/fi/filepizza创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表