一般文件存储系统常用的两种方法是自动重命名和或按时间覆盖(最近的覆盖之前的),SMB、NAS等系统会提示文件被占用无法保存,稍后再保存就是覆盖。
这也是传统多人文件管理及共享系统的硬伤之一,重名文件覆盖丢失、同一文件多人编辑版本冲突丢失文件。
不过企业网盘很好的解决了这个问题,所以要在局域网中传输文件时避免冲突或重复文件名的问题,最直接的解决方案就是使用企业网盘来负责文件的使用、管理、及传输。
拿我们的产品巴别鸟企业网盘为例,一共有三个主要功能模块来防止冲突及文件覆盖丢失。这三个功能模块中也有大量功能细节和处理逻辑并且互为关联。下面简单说说这三个模块便于了解,其他产品如有类似功能,原理也大差不差。
文件自动锁定机制及冲突管理
巴别鸟除了传统的上传文件以外,还有同步文件夹、映射盘、客户端编辑、在线编辑、新建文件 这5个途径可以产生文件或文件的新版本。巴别鸟是一个企业网盘,天然就是多人使用的,大家工作时使用同一个文件夹,编辑同一个文件也是常态,所以为了协同工作又避免冲突,我们其实需要即能多人协作编辑又能处理好各自编辑保存或者传输数据时文件不被覆盖丢失的问题。
多人共同编辑需求,巴别鸟采用了在线编辑功能解决,在线编辑相当于在服务器端打开文件的副本,大家的编辑工作都是在同一个文件上的,保存的也是是同一个文件,所以不存在文件冲突问题。
而不管是在同步文件编辑文件、或者映射盘编辑、客户端编辑云端文件,都会遇到你编辑的时间内其他同事也编辑或上传同名文件的问题,如何有效防止冲突呢?
解决方案是在使用本地软件编辑共享文件时,其他人在任何地方都不能编辑这个文件。这样可以有效防止多个人同时编辑文件造成的冲突,这就是文件自动锁定机制。编辑完成后,文件自动解锁其他人就又可以编辑了。
所以无论是在本地的同步文件夹中编辑、或者是直接在映射盘编辑、还在客户端右键调用本地程序编辑,巴别鸟都会自动锁定文件,其他人在你编辑的时候,对文件只有只读权限,没有写权限,这样杜绝了绝大多数的文件冲突问题。
但是实际使用中也有譬如断网造成云端没有锁定文件或者编辑时没有开启客户端,其他同事编辑过上传新版本了然后又开启客户端等情况导致文件冲突。
这个时候,就需要冲突管理了。
只要检测到本地文件和云端文件版本不同,并且编辑时间没有对上,就会弹出冲突提示,让用户选择使用什么版本作为当前版本。有点类似于知乎的文章版本冲突提示。不同的是,选择了一个版本作为当前版本后,另一个冲突的文件巴别鸟也会上传,成为上一个版本。有效防止用户误操作丢失文件内容。
这就提到了下一个防止文件因重名被覆盖的重要功能了,就是版本管理。
版本管理
在巴别鸟中,文件不会被覆盖,编辑好保存的文件只是文件的最新版本。并不会覆盖老的文件。
️
同名文件上传也可以选择保存为新的版本或者重新命名成为一个新的文件。任何时候,文件的管理者都可以把任意老版本设为当前版本。
版本管理杜绝了文件因冲突而丢失的情况。得益于巴别鸟独有的增量存储技术,即使文件有几百个版本,占用的存储空间也不会特别大。
自动重命名
当上传的文件是同名文件夹时,版本管理显然就不能适用了。或者是一些自动处理进程时用户没有机会选择如何处理的时候(如同步时遇到重名文件),这一块不同系统有不同的设置。
巴别鸟在这里的策略是文件遇到同名文件自动上传为新版本(如果文件没有被锁定),如果文件被锁定就自动重命名保存,而文件夹会采用重名名(防止文件夹互相覆盖造成文件变乱)
三个机制互相配合,就可以很好的解决局域网文件传输中的重复文件及冲突问题。
巴别鸟不仅可以在公有云直接注册使用,也支持私有化部署。就是说,企业可以在局域网服务器中部署巴别鸟,以实现用网盘更好的管理企业内部文件及内部文件共享及传输需求。