点对点文件传输利器FilePizza
简介
什么是 FilePizza ?
FilePizza
是一个开源的点对点(P2P
)文件传输工具,通过浏览器实现快速、安全的文件共享。它使用WebRTC
技术,允许用户直接在浏览器之间传输文件,而无需中间服务器存储数据。这使得文件传输过程极其快速、私密且安全。
主要特点
- 完全点对点:文件不经过服务器中转,最大程度保护用户隐私。
- 高速传输:利用
WebRTC
,传输速度仅受限于双方的网络带宽。 - 现代用户界面:全新的
UI
设计,支持清爽的明暗模式切换。 - 多文件支持:可以一次选择多个文件,接收方将下载到一个
ZIP
压缩包中。 - 跨平台:支持所有现代桌面和移动浏览器(包括移动端
Safari
)。 - 安全可靠:可以为分享设置密码,并随时监控传输进度或中止传输。
- 实时通知:上传者和下载者可以通过界面实时了解传输状态。
应用场景
- 快速分享大文件:无需等待漫长的上传过程,立刻将大文件(如视频、设计稿)发送给同事或朋友。
- 保护隐私:发送包含敏感信息的文件,因为文件不会存储在任何云端服务器上。
- 临时文件交换:在自己的不同设备之间(例如从电脑到手机)快速传输文件。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 filepizza
,选择第一个 kern/filepizza
,版本选择 latest
。
本文写作时,
latest
版本对应为3bd340d
;
由于该项目可能依赖 redis
等多个服务,因此直接使用 docker-compose
是最便捷的方式。
将下面的内容保存为 docker-compose.yml
文件。
1 | services: |
关于 docker-compose.yml
的简单说明
服务 | 属性 | 描述 |
---|---|---|
redis | image |
使用最新的 Redis 镜像 (redis:latest ) |
container_name |
容器名称为 filepizza-redis ,用于识别和管理 Redis 容器 |
|
volumes |
将主机的 ./data 目录挂载到容器的 /data 目录,以持久化存储 Redis 数据 |
|
coturn | image |
使用 Coturn 的官方镜像 (coturn/coturn ) |
container_name |
容器名称为 filepizza-coturn |
|
ports |
- 3478 为 TURN 协议的默认端口,用于处理 UDP 和 TCP 的媒体流传输- 5349 为 TURN 的安全传输(TLS )端口,允许通过加密连接进行 TURN 服务的通信 |
|
environment |
- DETECT_EXTERNAL_IP=yes ,检测外部 IP - DETECT_RELAY_IP=yes ,检测中继 IP |
|
command |
-n : 在后台运行 --log-file=stdout : 将日志输出到标准输出 --redis-userdb : 配置 Coturn 使用 Redis 作为用户数据库,指定连接信息 |
|
filepizza | image |
使用最新的 FilePizza 镜像 (kern/filepizza:latest ) |
container_name |
容器名称为 filepizza-app |
|
ports |
将容器的 8080 端口映射到主机的 8874 端口,以便访问 FilePizza 应用 |
|
environment |
- PORT=8080 :设置应用运行的端口为 8080 - REDIS_URL=redis://redis:6379 :设置 Redis 连接的 URL ,指向 Redis 服务 |
|
depends_on |
表示 filepizza 服务依赖于 redis 服务,确保 redis 在启动 filepizza 之前已就绪 |
然后通过 SSH
登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 filepizza 和 子目录 |
运行
在浏览器中输入 http://群晖IP:8874
就能看到主界面。
用法非常简单:
- 点击 “Drop a file to get started” 选择一个或多个文件。
- 你的浏览器会生成一个唯一的链接。
- 将此链接发送给接收方。
- 接收方打开链接后,文件传输将直接在你们的浏览器之间开始。
- 在文件传输完成之前,请不要关闭你的浏览器窗口。
从硬盘中找一个文件
可以设置密码,或者直接点 Start
开始,会生成长链接、短链接和二维码
另一台机器上打开分享的链接
开始下载
回到分享的机器,能看到下载机器的浏览器的版本
参考文档
kern/filepizza: :pizza: Peer-to-peer file transfers in your browser
地址:https://github.com/kern/filepizzaFilePizza • Your files, delivered.
地址:https://file.pizza/