ShareDrop:一款基于 WebRTC 的文件传输工具

https://github.com/szimek/sharedrop

分享文件一直是互联世界中重要的需求。今天,我们将介绍一款名为 ShareDrop 的开源 web 应用,它旨在提供一个类似于 Apple AirDrop 的快速、安全的文件传输解决方案。

什么是 ShareDrop?

ShareDrop 利用 WebRTC 技术实现端对端加密的文件传输,并通过 Firebase 来管理在线状态和 WebRTC 信号传导。这使得文件无需上传至任何服务器即可直接在设备之间传输。

使用 ShareDrop 的简单步骤:

  • 同网络传输: 打开 https://www.sharedrop.io 在所有设备浏览器中,系统会自动识别处于同一局域网(公共 IP 地址相同)的设备,便于快速文件共享。
  • 跨网络传输: 点击页面右上角的 “+“按钮,创建一个房间并生成一个唯一的 URL。将这个 URL 分享给想要接收文件的其他人,他们在打开该链接后会在浏览器中看到彼此的头像。

ShareDrop 与 AirDrop 的区别:

虽然 ShareDrop 实现了类似 AirDrop 的文件共享功能,但它需要网络连接来发现其他设备,而 AirDrop 可以通过建立临时无线网络实现直接连接。然而,ShareDrop 支持跨平台、跨网络的文件传输,涵盖 Android、iOS 和桌面设备。

本地开发指南:

  • 首先,你需要创建一个 Firebase 账号并建立一个数据库。在“安全规则”选项卡中,点击 “加载规则”按钮,选择 firebase_rules.json 文件。记录下你的数据库 URL 和密钥(可在“秘密”选项卡中找到)。
  • 使用 npm install -g ember-cli 安装 Ember CLI。运行 yarn 安装应用程序依赖项。
  • 复制 .env.sample.env 文件,并设置环境变量。其中,SECRET 密钥用于加密 cookie 和生成基于公共 IP 地址的房间名称(/ 路由)。
  • 运行 yarn develop 启动应用程序。

部署指南:

  • 使用 heroku create <app-name> 创建一个 Heroku 应用,然后使用 git push heroku master 将应用程序推送到 Heroku 仓库。