snapdrop - 无需下载的局域网文件传输服务

引言

有些时候想给朋友传一些东西, 但是又不想安装多余的软件, 应该怎么办呢?

网盘, 需要登录, 速度不一, 如何给链接也是一个麻烦;

空投, 曾经的王者, 现在需要验证码于是泯然众矣;

微信, 只能登录两个客户端, 文件管理混乱, 视频不仅有上传限制而且还自行压缩;

landrop, 如果不考虑不能装软件, 那个几十k的小软件就是最佳选择;

Airdrop, 排除掉安卓不能用就是最棒的方案.

经过一番排除, 我们排掉了几乎所有能用的东西....

但是有需求就会有市场, snapdrop就是那个可以满足无软件传输需求的那个服务. 用户体验接近Airdrop, 端对端保证信息安全和传输速度, 可以说是完全满足需求了.

使用SnapDrop非常简单,在需要传输文件的设备间同时打开https://snapdrop.net/网站,每台设备会被分配一个随机的名字。单击(电脑端)/轻点(移动端)需要传输文件的设备图标即可进行传输,也可以右键(电脑端)/长按(移动端)相应的设备图标来传送文字信息。

如果你采用的是Chrome浏览器,还可以在地址栏找到相应图标,将该网站添加为Chrome应用,就可以像原生应用一样快速访问,以备下次使用。

效果展示

https://snapdrop.net/

官方网址+firefox浏览器

http://107.175.142.245:8081/

自建服务+safari浏览器

过程

ports决定了访问的端口,由于http默认80,https默认443,本地端口只需要更改这两个数字前面的部分就可以了。

docker compose 安装

代码语言:yaml
复制
---
version: "2.1"
services:
  snapdrop:
    image: lscr.io/linuxserver/snapdrop:latest
    container_name: snapdrop
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Etc/UTC
    volumes:
      - <path to config>:/config
    ports:
      - 8081:80
      - 8043:443
    restart: unless-stopped

docker-compose up -d

run

代码语言:shell
复制
docker run -d \
  --name=snapdrop \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 8081:80 \
  -p 8043:443 \
  -v /dev/sda1/home/tenney/docker/snapdrop:/config \
  --restart unless-stopped \
  lscr.io/linuxserver/snapdrop:latest

镜像安装

结果显示网络不好无法安装, 于是使用海外服务器进行安装后导出镜像:

docker save -o snapdrop_ye.tar lscr.io/linuxserver/snapdrop

之后在本地服务器读取.

结论

如果说使用体验, 是肯定不如Airdrop的, 但是用户门槛几乎可以说是完全不存在, 作为文件传输服务绝对称得上好用.

题外话

虽说我喜欢细数一开始说的那些软件的缺点, 但是每一种东西的存在都有他的价值, 最典型的就是微信.

说中国人活在微信上想必没有人否认吧, 而微信作为一款聊天软件该如何评价呢?

我觉得不合格.

文件管理混乱, 无群文件功能, 好友发送文件极容易失效, 重复保存同一份文件, 在微信内部打开会变成只读, 每一个操作都把我的血压往上顶, 我待会会写一个list细数一下WeChat的罪恶稍等... 但是就是这样的一个聊天软件, 拥有着12.99亿的月活跃用户<sup>5</sup>, 每天有超过3.6亿人通过浏览公众号来获取对外界的认知, 乃是当之无愧的国民级社交app.

为什么?

因为我不是微信的目标用户. 所以我的用户体验并不会影响到软件的风格. 我用不习惯的话我自然会去找用的习惯的, 但是没关系, 因为我能找到的用的习惯的聊天软件大概率还是腾讯家的, 这就叫策略.

总而言之, 微信是符合目标用户的使用习惯的, 所以他才能成功, 所以我们也要学会用正确的工具做正确的事, 而不是致力于去找一个十全十美的工具.

小剧场

叶与师兄论文件传输

叶与师兄开会,有一文件待传。

师兄曰:"即有文件相看,为何不微信发送?"

叶曰:“愧矣,吾之笔记本内存甚小,难以运行。”

师兄曰:“师弟好生闲逸,常在网上翱翔。必定有所涉猎,知晓当世之良软。请试指言之。”

叶曰:“论传输文件之便捷,以网页为首选。吾所知有一名为‘空投’之网页,可免登录而传送文件。”

师兄曰:“依《中华人民共和国网络安全法》及其他法律法规与监管要求,发送内容必须实名登录。‘空投’有名无实,实属不便。”

叶曰:“吾意可以搭建一网站,无须密码,便于快捷传输。”

师兄曰:“安全性较差,且会消耗大量带宽,受网速限制,实属不佳。”

叶曰:“除网页外,尚有一法,即‘云盘’。云盘之中,大抵百度网盘、阿里云盘、蓝奏云三者为甚,皆能传输文件。”

师兄曰:“吾虽知之,百度网盘速度缓慢,阿里云盘则需登录,蓝奏云虽方便,但仅适用于小文件,且其安全性难保。”

叶曰:“安全之道当数FTP、SMB等本地协议为甚,乃真正之安全也。尤其是在局域网中,速度更是快如闪电。”

师兄曰:“固然,但设立服务器异常不便,需耗费时间金钱。”

叶曰:"若得『LanDrop』、『快牙』、『Minishare』等软件辅佐,则无需设置服务器,亦可传输文件。"

师兄曰:"要安装软件,还不如微信。"

叶遂以手机微信发之,事了。

微信到底有多差?

  • 文件管理 - 无群文件功能 - 文件极易失效 - 文件重复保存(拜其所赐经常可以看到**(1)(1)(1)(1)的奇景) - 下载文件在微信内打开会变成只读(经常有人问我怎么改) - 上传文件大小限制为1G(截止2020年是<font color="#f00">大于50M无法发送</font>) - 发送视频图片自动压缩甚至改变格式 - 发送APK自动重命名
  • 聊天功能 - 必须加好友才能发消息 - 无法在同一平台两个设备登录一个帐号 - 群消息无法屏蔽已屏蔽联系人(那你是屏蔽了个啥啊?) - 几乎无聊天记录漫游 - 移动端语言转文字记录不保存 - iOS移动端无法以笔记形式转发语音
  • 其他 - 号称小而美实则60G - 无法设置自动使用系统默认浏览器打开链接

借用@zhihu@琥珀的一句话就是<sup>7</sup>:

代码语言:txt
复制
微信能作为国民级社交app我觉得在座的中国人都有责任.

引用

  1. GitHub - RobinLinus/snapdrop: A Progressive Web App for local file sharing
  2. Docker
  3. 没有AirDrop也能优雅的传文件——SnapDrop全方面使用指南
  4. Snapdrop - 好用的跨平台文件传输工具(无需下载安装、打开网页即可使用)
  5. 腾讯:微信及WeChat月活12.99亿,同比增长3.8%|腾讯|财报新浪科技新浪网
  6. 媒体聚焦微信十年:日活跃用户近11亿,数个对手停服或转型10%公司澎湃新闻-The Paper
  7. 微信在海外市场是否败给了 WhatsApp,为什么? - 琥珀的回答 - 知乎
  8. AirPortal空投快传
  9. ChatGPT