生活中碰到需要跨设备传输文件并且尽可能要快的情况时,用NAS来应付有些杀鸡用牛刀,各个品牌生态内的互传工具听上去不错,但现实情况却是大多数人手中的设备并不互通。
不过办法总比困难多,在系统自带的快速传输功能之外,我们其实还有非常多优秀的独立工具可供选择。本文从少数派以往挑选过的数种文件传输工具中,挑选了一些简洁易用、适应性广并且依然具备可用性的本地传输工具,希望能够在你需要的时候帮到你。
关联阅读:
▍随处可用的网页版隔空投送:SnapDrop
于是,各种第三方的传输方案纷纷涌现出来,光怪陆离。这其中就包括了SnapDrop——一款极致还原了AirDrop的界面与使用体验的网页版局域网传输方案。
如SnapDrop的界面所见,它与访达中的AirDrop页面不能说一模一样,只能说完全一致:
得益于SnapDrop的传输原理,它可以在任何支持WebRTCAPI的浏览器上使用——这就包括了目前所有Chromium内核的浏览器,以及Safari。
不过,SnapDrop虽然在体验上做到了比肩甚至超越了AirDrop(毕竟这两代macOS中AirDrop窗口卡死的时候是真的不少),也可以用来直接发送一些纯文本的短消息,但是受到API与传输协议的限制,它对于大体积文件的传输速度相比AirDrop还是稍微逊色一些。
而且SnapDrop单次只能传输单个文件(即使选择多个文件也是依次传输),无法按文件夹发送,因此如果你想用SnapDrop来同步音乐资料库之类的话就会变得比较麻烦。
你也可以用SnapDrop传一些短文字
但是话说回来,即使仅仅用来作为跨平台的零碎文件传输,SnapDrop的体验和兼容性都可以称得上是第一梯队,你甚至可以将网页保存成PWA来固定使用它。
唯一需要注意的是,由于WebRTC的定义,SnapDrop其实并不是彻底的本地传输——它虽然是用局域网来传送文件,但是各个设备的广播、寻找和标签识别则是需要通过一台独立的Signaling服务器实现,个中细节可以参考少数派的。
▍Signaling服务器出问题了怎么办:LocalSend
事出有因,开发者TienDoNam之前也是一个SnapDrop用户,但是在碰上了SnapDrop由于Signaling服务器宕机导致设备之间不能互相识别之后,他就开始考虑基于SnapDrop的开源框架做一款纯局域网的文件传输工具,LocalSend由此诞生。
与SnapDrop有浏览器就能使用不同,LocalSend是需要在各个设备上分别下载app使用的,目前支持Android、macOS、iOS、Windows与Linux平台。
macOS版的程序界面,可以看出LocalSend的交互主要还是基于Android的设计规范开发的
在使用逻辑上,与SnapDrop先选择设备再选择文件相反,LocalSend使用的是「发件箱」的逻辑,你需要先在程序内的发送区选择好想要传输的文件,再点击要发送的设备开始上传。
如果你一直将LocalSend挂在后台使用的话,这个发件箱是需要你来手动管理的,或者在退出程序后清空。
并且与SnapDrop的限制一样,LocalSend目前也不支持传输文件夹,想要大批量传输文件的话还是得先把文件压缩到一起。
由于同样是基于本地网络传输,LocalSend的传输速度会在相当程度上受到你使用的网络规格的影响,比如在尝试将一部大约4GB的电影发送到手机上时,回报的平均速度在13~15MB/s左右,传输完成用了大约5分钟——在5GhzWi-Fi下并不算理想,但用来传输照片或者文档的话是绰绰有余了。
峰值速度在15.5MB/s左右
▍远不止文件传输那么简单:AirDroid
比起SnapDrop和LocalSend这样纯粹的文件传输服务,AirDroid显然想得更多。
如果你下载了AirDroid客户端,或者使用它的网页版入口的话,你会吃惊于「文件传输」只占了页面中多么小的一块区域——比起在电脑和移动设备之间互传文件,AirDroid主打的其实是全套的「无线控制」业务,你几乎可以通过它来控制局域网内安装了AirDroid客户端的Android设备的全部功能。
左侧的功能列表之丰富,几乎可以看作是给所有Android设备的三星DeX
而如果只将AirDroid作为局域网内的文件传输工具的效果如何呢?取决于你使用的是网页版还是app,用AirDroid来传文件的评价可以是从「还不错」到「不太行」区间内的任何一种。
首先,如果你使用网页版远程连接来传文件的话,虽然你可以访问Android设备中的所有文件路径,但是单次传输的文件大小被限制在了30MB,即使付费成为高级帐户也只能传输不超过100MB的文件。
▍功能纯粹的无网络传输:MacDroid
相比上面AirDroid功能的玲琅满目,名字十分甚至九分相似的MacDroid则单纯很多,它的功能只有一个:在macOS上把Android设备识别为移动硬盘,从而进行文件管理和传输。
启动MacDroid后,它会提示你可以通过两种方式连接Android设备。要么通过开启安卓调试桥(ADB)、让它通过shell指令访问机内文件,要么将Android设备的连接模式改为「传输文件」、以MTP的格式读取设备。
无论选择哪种方式连接后,MacDroid都会将已连接的设备直接显示在访达的侧边栏中,进行文件管理的方式和使用移动硬盘别无二致:
并且MacDroid可以同时挂载多台设备,你可以直接将Mac作为中继直接在两台Android设备之间通过数据线进行文件传输。
尽管MacDroid在不付费的时候只允许你以「只读」的方式挂载设备,虽然无法向里面写入任何东西,但你其实是可以从里面向电脑里拷贝数据的。
一旦你想发送一些文件给Android设备,MacDroid的价格是每年20美元
▍但如果你不想给MacDroid交钱的话:AndroidFileTransfer
作为一款单纯可以为macOS提供识别MTP协议的「挂载器」来说,MacDroid每年19.99美元的订阅费还是有些让人心痛的。而如果你不想花这笔钱的话,谷歌其实很早就已经有了一个本家的解决方案——这个长得有些「毛坯房」的窗口就是AndroidFileTransfer的主界面:
相比MacDroid还可以使用ADB强行挂载设备,AndroidFileTransfer的原理更加单纯一些——它需要连接的Android设备将USB连接模式改为「文件传输」模式,然后为macOS提供对于MTP协议的识别。
AndroidFileTransfer的文件管理窗口不像MacDroid那样无感,也不支持在Mac上对Android设备里面的文件进行复制黏贴和剪切之类的移动操作。换句话说,除了把文件复制进去或者复制出来之外,它能做的就只剩下创建文件夹、重命名和删除文件了。
不过对于简单的文件传输和数据同步,上述的功能其实也已经足够,在传输文件的过程中也可以轻松跑满接口或者是数据线的最大带宽。再加上AndroidFileTransfer和ADB两者都可以算是来自谷歌的官方传输方案,并且都是彻底的离线工具,其可靠程度是毋庸置疑的。
▍局域网传输何必只限于局域网:TailDrop
建议大家选择用微软账户登陆Tailscale
但如果用Tailscale发送HEIF照片的话,文件格式会被转换成JPG
比如Tailscale的macOS客户端在接收文件时是不会有任何通知提醒的,它只会悄无声息的把接收到的文件保存到设备的下载目录,至于文件发送成功与否全都要在发送文件的设备上查看。
不过得益于Tailscale所基于的SD-WAN协议和「免确认传输」的特点,如果你需要在出门在外的同时向局域网内的设备传输文件(比如旅游的时候实时向家里的电脑同步照片)的话,Tailscale将会是一个可行的方案,或者直接在两台不在同一局域网内的设备(比如同时在使用流量的两台手机)之间传输文件:
▍如果我偶尔也想给别人发点文件怎么办:Send-Anywhere
除了在开头提到的自己同步照片的场景之外,「本地文件传输」中其实还包含了另一类场景:一位朋友来家中做客,如何在不使用即时通讯软件的前提下向他发送一些自己拍摄的照片和视频?
虽然SendAnywhere目前有自己的账号系统和付费功能,也在各大平台上提供了app,但对于频率不高的小规模文件传输来说它的网页版其实就已经足够(只不过在手机上你还是需要强制请求桌面版网站才能发送或者接收)。尽管SendAnywhere的页面布局看起来有些松散,它的功能区实际上划分的很明确:发送文件,或者接受文件。
文件的上传与异地无app下载
▍结论:术业有专攻,别用张小龙
长久以来,各个品牌各个平台在文件传输这件事上的「分而治之」已经给我们的使用带来了数不胜数的烦恼,甚至反过来逼迫我们将原本只是用来聊天通讯的社交软件当成了传输文件的终极手段。
这样能用吗?能用,但也真的不好用。第三方软件市场中拥有无数的开源解决方案,其中不乏类似LocalSend这样的优秀选手。虽然在文件的远程、异地传输上我们仍然需要借助各类云盘或者P2P方案来解决,但是至少从桌前的本地传输开始,我们可以真正的「不将就」一次,让专门的软件来做专业的事。