定居在M星的我远房表弟,也就是我二大爷家的外孙子,他媳妇最近生了一个大胖小子。

一家子忙前忙后折腾了好几天,好不容易得了一个空闲,想要将大胖小子的照片分享出去时才发现事情似乎没那么简单。


首先,我二大爷家住H星;

其次,我远房表弟家住M星;

再次,其他亲戚有的住Y星,有的住T星;

最后,还有一部分亲戚和我们一样,住地球。


居住在不同星球的人们,虽然都连接着宇宙网,但是并不是像我们地球一样都可以愉快地使用微信之类的通信工具。

通常不同的星球上的人需要遵守不同的政策,自然他们也就使用着形态各样风格迥异的电脑系统。

即使物理上隔着万水千山、星辰大海,但人们的心总是连接在一起的,因此虽然他们使用着不同的电脑系统,但是却都能使用 Web 浏览器访问网站查看新闻等信息,即便这些浏览器也是千奇百怪的。

那么问题来了,就算浏览器也不能统一,能不能仅仅通过不同的浏览器来实现文件(照片也算是一种文件)的快速传输呢?


在地球上就有那么几位头脑聪明的人类,他们发明出了一个叫作 Snapdrop 的小工具。

我想他们肯定也曾经被此类问题所困扰过,不过还好我们很幸运赶上了!

没错,就是这个小工具使得远房表弟家大胖小子的照片得以及时传送给了他的亲人们。


简介 Snapdrop

它是一款可以通过浏览器传输本地文件的神奇工具,据说灵感来自于苹果的 Airdrop

Snapdrop 使用了如下的技术进行构建,当然大部分是用 JS 写的程序。

  • 前端 HTML5 / ES6 / CSS3
  • WebRTC / WebSockets
  • 后端 NodeJS
  • 渐进式网络应用


使用演示

既然是用 JS 写的程序,那么我想小伙伴们应该大概能猜到 Snapdrop 多半是在浏览器上跑应用的。

没错了,前面也提到过,它就是给你一个网址,然后分别找不同设备用浏览器打开这个网址,再然后就可以传文件了。

这么说你可能不会太明白,下面就用官方的网址举例子做演示吧!


先找台电脑,将其做文件发送方,我们将它命名为 发送端A

然后打开这台电脑上的浏览器(火狐、谷歌都可以),输入下面这个网址。

https://snapdrop.net
 


好,我们再找来另一台电脑,将其做文件接收方,我们将它命名为 接收端B

同样,也打开浏览器(火狐、谷歌随意),也输入前面那个网址。

这时,我们就可以看到两台电脑上的浏览器分别标识了对方的设备类型和浏览器类型。


这就是等待传输的姿势啊,我们点击中间的电脑图标,选择要传输的文件。

一旦选择好文件后,那么 发送端A 就会在浏览器底部显示文件已经传输完成。

接收端B 一侧则会出现是否下载保存文件的提示,意为接收 发送端A 传过来的文件。


是不是超级简单啊?

其实还可以再简单一点儿!

点击 Snapdrop 页面右上角的箭头图标,还可以将它作为扩展附加到浏览器中。


有小伙伴说了,点到点传输太简单,那么多亲戚等着看大胖小子的照片,就不能多端点发送吗?

实际上 Snapdrop 完全可以做到呀!

想要接收照片的亲戚,你让他在浏览器上输入网址就行了,发送端自动就会上线设备信息。

其中还可以是手机、平板等移动设备,只要你是被支持的现代浏览器就OK。


接下来要做的事情我就不用多说了吧,尽情地发送文件吧!


哈哈!有人说了,这玩意挺好哈,可惜都要访问 snapdrop.net 这个公网网址,怕是不够隐私不太安全,或者速度太慢啥的。

总之,要是公司局域网里,或是某些自己内部圈子里用来传传文件就更好了。

能这么玩吗?

当然!


Docker 上实现 SnapDrop

只要有 Docker ,自己也能玩 SnapDrop ,走着!


打开 DockerHub 镜像网站,在搜索栏中搜索 snapdrop

在搜索结果中找到 seji/snapdrop-docker

https://hub.docker.com
 


拉取镜像

docker pull seji/snapdrop-docker
 


查看镜像,大小 145M ,还行,不算大。


运行容器

docker run --rm -p 8080:80 seji/snapdrop-docker:latest
 

我们可以根据实际情况将端口 8080 修改为任意我们想要的访问端口,当然直接用 80 端口也是可以的。


我们实际在局域网中测试一下,传输文件完全没问题!


写在最后

现在的浏览器非常强大,强大到在操作系统江湖中早已出现了只放一个浏览器的系统,比如 Chromium OS 等。

起初我和很多小伙伴一样,感觉这个只有一个 Chrome 浏览器的系统也能算是操作系统?

现在总算是明白了,拥有浏览器,你就拥有了一切!

现代浏览器能干的活实在是太多了,甚至它早已成一个精简版的操作系统。

用浏览器来实现的诸如 Snapdrop 能够用来传输文件,也算是其中一个小小的功能而已吧!

当然,浏览器还能做其他的事情,比如之前我就有写过将它做投屏之用,有兴趣的小伙伴们可以去翻一下前不久我写的文章。

好了,今天的分享就在这里了,希望本文能给你带来一些帮助,我们下期再见!

先关注、再点赞,转发分享在看你就是好同志!


为防止公众号失联,请加我的个人微信:sysadmcc

扫码关注@网管小贾,阅读更多

网管小贾的博客 / www.sysadm.cc



暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接