Docker 搭建网页版局域网文件传输工具 snapdrop

原文 https://www.amjun.com/1961.html

一、前言

在不同设备间需要传输文件的时候,阿蛮君总是会面临一个艰难的选择,到底用不用微信文件助手传,如果文件很大怎么办,并且传到文件助手我应该怎么在文件管理中找到文件的位置。

这是真实发生的事情,之前使用 zerotier 异地组网,安卓端需要安装 zerotier fix 软件并更换 planet 文件,我当时搞了很久。

今天又面临需要传文件的问题,忍无可忍,于是想在网上找局域网传输工具,但是很多都是需要安装客户端,我还是觉得太麻烦了。最后,终于找到了这款神器 snapdrop

如果你之前搭建过,但是找不到客户端,也别急着划走,请往下看

二、简介和搭建

snapdrop 类似于 AirDrop 隔空投递,基于Web技术,使用WebRTC(Web实时通信)协议来实现设备之间的直接通信。它可以在 web 端运行,这是最重要的一点,不需要下载客户端,那么也就以为着跨平台。

搭建也非常简单,使用如下命令即可,并不需要进行额外配置。

docker run -d \

--name snapdrop \

-p 9090:80 \

hausen1012/snapdrop

这里说一下,如果使用官方的容器,很有可能出现找不到设备的情况。因为官方的服务器,只能看见连接了同一网络的设备,毕竟官方的服务这么多人用呢。如果不进行隔离,那么找自己的设备都找不到。

但是基本上自建的容器都是自己使用,所以我这边是在 git 上找到的相关的解决办法,并解决后重新构建了镜像,所以大家可以放心使用。

此外,还修复了一点图片显示异常问题,其实就是添加了一条 css 限制图片宽度,不然显示是这样的。

三、使用

1. 加入网络

此时使用浏览器访问发现什么也没有,这是因为目前还没有其他的设备加入这个网络,并且自己不能看见自己。

如果我将手机也加入到这个网络,那么将显示一台设备。

2. 发送文字

可以右键需要发送的设备,输入文字信息。

此时手机端将显示文字信息,并可以进行复制。其实下面这张图片都是我截图用 snapdrop 传过来的,嘻嘻嘻~~

3. 发送文件

当我在电脑端选择文件发送,效果如下,可以选择忽略或者保存。

当电脑端选择图片发送,先比较于之前的显示,是不是效果好多了。