我的工具记录(4)- 文件存储及共享

Published: by

文件存储及共享

我们在G2Rail(www.g2rail.com) 项目上有一些场景会涉及到保存或者共享文件。有时候,发送文件就直接拽到微信里面,收的人收到了保存到自己本地就行。这样有很多问题,第一个是微信的文件,如果不下载到本地,过了一段时间就再也打不开了——于是经常就被在群里@,能不能把xxx文件再给我发一份?于是不得不回去找。有时候自己都忘了放在那里了。第二个问题是即使保存下来了,回头再到微信里面找也很费劲,群里每天都有无数消息飞来飞去的,所以找两个星期前的文件,实在是费劲。所以我开始寻找一些更优雅的解决办法,把大家都解放出来。

临时文件 transfer.sh

有时候我们想把一个100M甚至更大的文件打包传给另一个人;又或者想快速的把文件复杂到远程Widows服务器上;或者把Window服务器上的日志复杂下来做进一步分析等等。这些情况下,直接拽到微信里面就不是很合适了,为了一些临时动作在服务器上装一些不用的软件也不好。所以我们用了 Transfer.sh

通过它,可以直接上传文件

$ curl --upload-file ./test.txt https://transfer.sh/test.txt

它会生成一个网址,下面这条命令就可以保存下来。

$ curl https://transfer.sh/1lDau/test.txt > ~/tmp/text.txt

如果是鼠标流的同事,也可以在浏览器里面打开 https://transfer.sh/1lDau/test.txt,网页上就有个下载按钮。直接下载就可以用了。

国内访问transfer.sh有时候也慢,所以我搭了一个放在自己的服务器上,这样同事都能用。

便宜的可以给客户/用户访问 AWS S3

我其实近一年才开始慢慢适应AWS的一系列服务,用顺手了十分流畅省心,也很便宜。我开始用S3的起因是想给一系列的静态HTML网站找一个可以存储、方便更新,价格还便宜的host。当然阿里云提供了虚拟主机,相比而言,借S3的存储顺便做静态就很方便了。这个网上资料很多,文档和各种库都很齐全。

不过在真正开通AWS账号之前,我也用了一段时间的类似S3的服务 —— minio

自己搭建的S3 —— Minio

Minio和S3的接口是一样的,它的好处是分分钟就自己搭起来,也提供了很便捷的后台。我会在里面存一些数据库备份、车站更新之后的patch等等。它的好处是操作界面相对简单,就跟打开文件夹一样。所以实习生、小白用户都能用。而且自己host就可以把它放在跟实际使用的应用在同一个机房甚至同一台机器上。这样代码也可以非常方便地访问、保存文件。

有没有团队 Dropbox?

我在北京办公室设置了一个内部使用的NAS,当然,通过黑科技比如 frp 可以把NAS发布到公网上访问。不过这个方案有几个问题,比如跨网络访问可能会比较慢,比如从香港、德国访问北京的NAS;如果要传个文件得自己往里面拖。这时候 NextCloud 或者它的一些替代方案 Pydio,ownCloud 等等就比较适用了。NextCloud的好处是,有很方便的各端APP,从iPhone、Android到Mac、Windows系统都可以方便访问;而且可以自动同步。

所以我搭了NextCloud之后,专门给它一个私有的AWS S3仓库存东西。里面保存了比如铁路公司API文档,我们的图片、视频资源,各个版本BP等,也很方便通过链接分享给内部或者外部人士。省去了微信拖来拖去的痛苦,一旦需要啥,自己去里面找就行了。这个就比较适合长期保存的文件资源。

最近还看到一个 rclone 貌似也很酷。

密码

G2Rail用到了几十个或者上百个各种系统,内部或者外部系统,每个系统都有独立的密码。我在北京办公室发现很多人都在桌面上保存了一个Excel,里面填着各种系统密码以及登录入口。比如有人要出各Italo的团队票,就感觉打开Excel,找到NTV自己用的账号,复制链接地址贴到浏览器;复制用户名贴到浏览器,复制密码,贴到浏览器;场面十分壮观。有的系统要求三个月改一次密码,改完密码之后就热闹了,有人在微信群里艾特所有人,xxx密码改成了xxx。有人忙着出票可能没有注意到消息,于是过了半天,忽然抬头吼一嗓子,xxx的密码特么的怎么登录不进去啦;有人吼说 “密码改啦”

—— “改成啥啦?”

—— “看群消息!”

—— “刷过去啦,找不着了,能发我一份不?”

—— “等我会”

这时候其实有个能够统一找到密码的地方就很重要了。

我有好几个想法 Passbolt 可以分类和共享密码,这可能是我考虑切换的一个选项。 Teampass 在团队共享密码,有十分精细的权限和安全控制措施。 Keeweb 编辑、保存密码,同步密码文件到Google、DropBox等等地方。

最后我选了Keeweb,它足够简单,不动脑子就知道怎么用。有密码保护,不需要装客户端,主要还可以有中文。因为Team Member访问Google Drive和Dropbox不是很稳定,最后用的是WebDav做为存储。

当然KeeWeb相比其他几个方案,没有数据库,就是个文件保存上去,所以有时候可能会潜在有并发写的问题,我遇到过一次文件损害的情况,不得不紧急恢复。如果问题频发可能会考虑切换到Passbolt,先维持现状一段时间看看。

写在后面

在这些资源共享工具逐步迭代的过程中,我自己的想法也发生了一些变化。一个需要对铁路公司系统操作十分熟悉的人,没有必要稔熟英文或者IT工具。工具的作用是让业务流程更加流畅,甚至大家完全没有意识到是在用某个工具。因此,对目前阶段来说,快速让他能够访问到想要的资源,降低来来回回无效沟通的次数,比高大上的安全、功能完整更为重要。或许有一天,业务体量发生了变化,没有关系,我还有Plan B。