什么是文件传输?
文件传输是指文件从客户端发送到服务器端,客户通过客户端程序远程接入服务器,选择本地要传输的文件发送到服务端。
什么是存储系统?
文件存储系统是一种分层数据存储方案,用于将数据存储在文件中,并将文件组织到文件夹、目录和子目录中,比如有本地磁盘、网络挂载、对象存储等。
目前的文件传输系统中,大多数采用的文件传输系统只支持单个的存储。随着科技的发展,存储的类型越来越多,构建的越来越复杂,业务要求越来越多样化,只支持单个存储的文件传输系统是无法满足现有的需求。
企业大文件传输产品——镭速是如何实现的?
镭速传输——在企业大文件传输领域深耕多年,通过使用虚拟路径,同时支持多存储,自功能发布以来,被不少企业用户所使用,历经几次功能迭代,对多存储的支持更加完善。
镭速传输通过增加虚拟路径方法,服务端支持不同的对象存储、本地路径、网络盘等,达到随时增加、删减存储,通过虚拟路径灵活、高自由度的将不同的存储放在不同的服务器逻辑路径,从而满足现有的需求。
具体的步骤如下:
1、服务器新增一个存储信息,主要包含存储的存储id,实际路径,账户名,密码,通过这个存储信息服务器能够连接到这个存储,对这个存储的文件进行操作。
2、服务器的逻辑根路径设置为”/”。
3、服务器增加一个虚拟路径,虚拟路径的规则:以服务器的逻辑根路径”/”开头,再加上想要写的路径,例如”/oss_virtual_path”、”/oss_virtual_path/local_virtual_path”。同时给这个虚拟路径绑定一个存储id。
4、客户端浏览服务端的远程目录时,服务端返回逻辑根路径下的所有虚拟路径。例如返回”/oss_virtual_path”。
5、客户端继续浏览”/oss_virtual_path”。
6、服务器收到请求后,从虚拟路径列表中查找”/oss_virtual_path”,得到绑定的存储id,通过存储id找到存储信息。然后通过存储信息,连接存储遍历该存储实际路径,获得实际路径下的文件信息,如”/oss_virtual_path/a”。同时从虚拟路径列表查找”/oss_virtual_path”路径下的所有虚拟路径,如”/oss_virtual_path/local_virtual_path”。最后将上诉获取的到文件信息和虚拟路径回传给客户端。
7、客户端收到浏览结果后,就可以开始上传下载。如客户端发送下载”/oss_virtual_path/a”文件请求。
8、服务端收到文件请求下载”/oss_virtual_path/a”文件请求,通过查找虚拟路径列表中最短符合该路径的虚拟路径,拿到对应该虚拟路径和对应的存储信息,将拿到的虚拟路径”/oss_virtual_path”,对请求路径”/oss_virtual_path/a”切割获得文件实际名称“/a”,然后把存储信息的实际路径和获得的文件实际名称拼接,得到文件在该存储的真实路径——最后服务器将文件传给客户端。
上传同理,客户端将一个本地文件上传到服务器的虚拟路径地址,服务器通过虚拟路径列表,把这个虚拟路径转换成实际路径,然后将客户端上传的文件保存到实际路径上。
经过上述步骤,就能实现同时支持各种存储系统了。