文档共享管理功能如何实现?

如果从实现原理上来说,有很多技术路径,这里简单讲一个演化路线。

首先,最简单的文档共享方式就是两台计算机间的文件共享,在文件存储中,每个文档都有一个独一无二的地址,如果两台计算机直接的网络是通的,只要输入正确的地址就能互访到之间的文件(当然需要有访问权限),如果我们需要很多台计算机访问同一个文件,我们只需要用一台计算机存储这个文件,其他计算机访问这个文件地址就可以。这样就构成了一个最简单的文档共享系统。

我们常见的NFS、windows文件共享

(SMB)、甚至大多数NAS就属于这种文档共享方式。

这样共享文档的好处是简单,但规模化使用又会有一些问题,其中主要的是:

  1. 每个文档都是直接被访问的,如果被无意覆盖了,文档内容就会丢失。或者被删除了文件也找不回来了。
  2. 如果你正在编辑一个文档,其他人同时也去编辑了就会大概率出现冲突。
  3. 每个文档的地址都是明文(路径),而权限管理分散,稍不注意就容易泄漏文档,如果支持匿名访问就意味着获取路径的人都能获取文档副本。
  4. 不支持互联网访问,仅支持局域网内访问。
  5. 能直接机房访问硬盘的人就能获得所有数据。

这样显然不能满足很多共享及管理需求,那么,先解决互联网共享问题,把文档存储放在互联网上,并且配合身份认证呢?业务服务器管理登录注册、授权、用户账这些,存储服务器就管理文件。这是个思路。于是早期网盘出现了。文档放在互联服务器上,要共享就把文件网络路径分享给其他人,访问这个网络路径就能获取到文档。

这样解决了网络共享问题,但新的问题随之而来:

  1. 互联网访问分享打开后的下载地址是可以获取的,获取下载地址的任何人都可以下载文件,只要把下载地址截取出来就能传播给别人,不安全。
  2. 两个人同时编辑同一个文档怎么解决?冲突了怎么办?
  3. 文档被有权限的人误删或覆盖了,怎么办?
  4. 我要把文档分享给A,但我只希望他看,不希望他下载编辑或者发给别人,怎么办?
  5. 上互联网了,文件访问的人多了,磁盘上的文件同时被读取下载的人很多,磁盘IO就这么大,访问的人多了就卡死,怎么办?
这样显然也是不适合企业使用的,仅适合个人小规模共享下文件。内就更改文件的存储方式,文件不再像个人计算机里一样树状存储了,上传的文件我们切成小块,100MB的我们切成10块10MB的小块分别放到10块硬盘里,读取时不就有10块硬盘的IO速度了么?文件树状列表我们拿个数据表记录下,用户访问时候需要的路径分类我们就去数据库读,这样就是同样的文件,不同用户也都可以有不同的路径和文件列表,还能省点空间,用户需要取文件时,就按表把10个小块都取到拼回文件放在缓存里再给用户,这样还有个好处,我们能给不同用户不同的下载地址,

下载完了或者过个几分钟这个地址就作废。这样分享链接里的下载地址就是临时的,更加安全。然后文件每次编辑存储时都不去覆盖,而是上传个全新的版本,这样覆盖丢失文件的问题也就解决了。文件如果被编辑我们可以锁定,锁定的文件其他人就只能看不能编辑…..

这一系列操作下来,企业网盘就诞生了。企业网盘的文档共享已经能解决大部分共享问题了。但是新的问题又来了:

  1. 一个文件要很多人同时编辑怎么解?版本怎么保存?
  2. 几千万个文档几千用户权限怎么管?我怎么知道啥时候给谁啥权限?几千万文件都开分享?
  3. 没有权限文件是能只读打开了,但是用户另存为不是也相当于下载了?
  4. 我和大家共享了几千万个文件,我怎么找到文件?我找到的别人是不是也能找到?同一个路径下能不能我能访问别人不能访问?
  5. 分享怎么管控?有的文件是不能分享的啊?
  6. 我能不能直接在预览的文件上批注下或者画个圈跟人讨论?
  7. 我电脑上这么多文件也要一个个上传上去?

……….

是的,问题只会越来越多。但如果能都解决了,用户是不是会很方便?

行,弄台服务器专门负责在线编辑,大家都在云端去编辑同一份缓存上的文件,解决多人在线编辑问题。按部门层层分别管理文件,部门内可以按权限共享,对外分享弄个授权审批体系,再搞个文件加密等级,高密级的文件就不让分享。还要弄个能判断权限的搜索,每次搜索先看这个用户能看什么文件,他看不到的不能搜出来,再搞个进化,所有文件上来都转码成互联网可以看的格式独立保存起来,只读权限就只能在网络上预览,预览器再加个数据结构,支持线上批注,弄个同步模块,监视用户指定文件夹的文件有没有更新,如果更新了自动上传,云端更新的自动下载……

一系列操作下来,巴别鸟企业网盘

就诞生了。对的,很感谢你看到这里,这其实是一个广告。

但新的问题总是一直有:

  1. 我文件一个6G,我每天都要修改,上传下载一次太久了,能不能只上传下载我改的部分,改的部分就几K。
  2. 公司研发部门是内网隔离,业务部门是外网,我怎么安全的把研发部门的数据传送到业务部门?要可以控制啊。业务部门也要能传到研发部门。
  3. 我文件不断更新,但我只想分享之前的版本给客户,我这边更新用户内边不更新
  4. 能不能和我们公司的飞书、企业微信、钉钉对接下,一起管理啊?
……..

所以,巴别鸟企业网盘一直在迭代,希望让用户觉得更好用,能满足更多用户精细化的需求。

然后……..我们已经迭代 10年了!!

“不是说好只做文件共享么?“

“是啊,但是做事就要做专业嘛,这些都属于文件共享啊。“

“十年了,还没做好?“

“你看,ChatGpt又来了,用户新的需求是网盘里面能不能内置个ChatGpt,把存储里资料都学习了,以后公司内部有什么需求,直接问AI要答案就好“

“……..”

“你抓头皮干啥?又没有头发,再战十年吧“

我爱我们的产品,巴别鸟应该是目前文档共享做的最好的企业网盘。

访问我们官网注册企业公有云版本即可使用,能帮助你的企业解决很多问题。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注