前端 React, 后端 Golang(基本都是 stdlib 中的 pkg, 没有用到框架). 本人去年还写了个 P2P 文件传输工具simple-filer, 因此一并将此功能整合到网站中. 只要发送 /接受方同时打开同一张页面, 就可以实现 P2P 传输. (注意: P2P 传输只支持 Chrome 浏览器)
只需把页面 URL 发给你的好友, 他 /她就能看到你上传的文件, 你不需要等到上传完毕再发 URL, 所有打开该页面的用户都能实时看到上传进度. 你也可以打开多个 tabs 页体验一下.
由于是个人小网站, 带宽 /磁盘资源有限, 一个页面最多只能上传 4 个文件, 每个最大 5M, 页面有效期 20 分钟, 过了后, 相应的文件都删除, 页面的 URL 也会失效(返回 404). 对于 P2P 传输, 由于底层用到了 Chrome 浏览器的 FileSystem API, 文件直接写入 sandboxed filesystem, 因此没有文件大小 /个数的限制. 只要接受方硬盘足够大, 10G 也可以传输. 只要多人同时打开一张页面, 他们的昵称就会出现在页面左侧下方, 选中, 即可发送文件.
P2P 连接并非 100%的情况下都能建立, 只要一方位于比较严格的防火墙背后, 就无法建立, 此时你好友的昵称呈灰色无法选中. 但在局域网中, P2P 几乎 100%都能连接, 因此非常适合部署在办公室内, 以满足临时传输大文件这种需求.
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.