最近我去一个打印店打印时,发现打印店的电脑中存在着“文件夹EXE病毒”。插上U盘后,病毒会自动感染U盘中的文件夹。具体表现为,所有原先的文件夹会被隐藏,同时病毒会为所有文件夹创建命名相同但后缀为.exe的应用程序,并使用系统文件夹的图标作为exe的图标。这个病毒其实并不难查杀,但每次去打印后都要杀毒,未免过于麻烦。

此外,处于安全与怕麻烦的考量,我也不希望在打印店电脑上登录自己的微信。那么,还有哪些解决方案呢?

首先,可以购买带有硬件写保护功能的U盘。在去打印店之前,将U盘设为写保护模式,此时U盘的存储芯片会变成“只读不写”模式。病毒无法写入U盘,也就避免了这种问题了。这种方法的成本为U盘的价格(最便宜的质量还可以的为40元左右)。

其次,可以购买云服务器,之后自建一个文件共享网站。不使用诸如百度网盘之类的已有网盘工具的原因是,这类网盘总是要求手机验证码登录、下载客户端,且下载限速,会在打印店耽误较长时间。

轻量级文件共享类的网站有很多开源的轮子可以使用。droppy,filebrowser都是不错的选择。这类方法的成本为云服务器的年租金,如果赶上云服务器大促,可能比U盘还便宜。

droppy的优点是页面简洁大方,非常流畅,自带很多格式的文件的预览功能,同时可以编辑纯文本文件。但droppy的权限管理可以说是“聊胜于无”的。任何用户都可以访问所有文件。

filebrower也可以进行一些文件的预览,同时可以编辑纯文本文件。同时,filebrower支持为不同用户指定不同的可访问目录,可以实现良好的权限管理。

由于我非常的懒惰,我直接使用了docker进行部署。其实,对于这些轻量级的应用来说,手动部署也很方便,还可以有更好的性能。不过,docker可以实现良好的隔离与方便的维护,且性能损失很小,所以我还是使用了docker。

docker命令参考

droppy

mkdir -p ~/droppy/config ~/droppy/files

docker run -d \
  --name droppy \
  -p 6666:8989 \
  -v ~/droppy/config:/config \
  -v ~/droppy/files:/files \
  silverwind/droppy

filebrowser

docker run -d     -v $(pwd)/files:/srv     -v $(pwd)/filebrowser.db:/database/filebrowser.db     -p 6667:80     --name filebrowser     filebrowser/filebrowser

部署成功后,就可以在打印店等场合低成本、方便的进行文件共享了。如果本身有域名,可以将诸如dayin.your_domain_name.com指向对应的服务器,更为方便。