共享文件的管理方法、存储介质

文档序号:26278727发布日期:2021-08-13 19:35阅读:128来源:国知局
共享文件的管理方法、存储介质

本发明涉及数据存储领域,具体涉及共享文件的管理方法、存储介质。



背景技术:

现有的共享文件存储和共享大多由网盘、ftp服务器和文件服务器等实现。但是,网盘服务器布设在互联网,企业应用安全性和保密性比较差;而ftp服务器和文件服务器的管理功能比较差,无法解决文件重复的问题,且扩展性差。

为了能够更好地共享和存储文件,有必要提供一种新的共享文件的管理方法、存储介质,以满足人们的需求。



技术实现要素:

本发明所要解决的技术问题是:提供一种共享文件的管理方法、存储介质,能够节约存储空间和成本,同时提高安全性。

为了解决上述技术问题,本发明采用的技术方案为:

一种共享文件的管理方法,包括:

s1:接收一待存储文件后,将所述待存储文件的文件信息存储至数据库表一;

s2:分割所述待存储文件成指定大小的两个以上的小文件,并计算每个小文件的校验码;

s3:逐一判断每个校验码是否已存储在数据库表二中,若否,则执行s4;若是,则执行s5;

s4:存储对应的小文件至指定区域,并存储对应的小文件包括小文件名、校验码和存储路径的分割信息至数据库表二,执行s5;

s5:存储数据库表二中对应当前校验码的分割信息的主键、数据库表一中所述文件信息的主键以及二者的分割关系至数据库表三。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现如上述的一种共享文件的管理方法所包含的所有步骤。

本发明的有益效果在于:通过将共享文件分割成多个小文件,并分别计算校验码;再利用表一记录共享文件的文件信息,表二记录小文件的分割信息,表三记录共享文件及其分割得到的小文件之间的关联关系;通过查询表二对小文件进行查重,避免重复存储,节省存储空间和成本;同时也实现了共享文件的分布式存储,能够显著提高安全性。

附图说明

图1为本发明一实施例一种共享文件的管理方法中文件上传的流程示意图;

图2为本发明一实施例一种共享文件的管理方法中文件下载的流程示意图;

图3为本发明实施例一的共享文件的管理方法中三个数据库表之间的组合和关系示意图;

图4为本发明实施例三的共享文件的管理方法中文件上传的流程示意图;

图5为本发明实施例三的共享文件的管理方法中文件下载的流程示意图。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:将共享文件分割成多个小文件,并分别用校验码进行标识;利用表一记录共享文件的文件信息,表二记录小文件的分割信息,表三记录共享文件及其小文件之间的关联关系;存储时依据表二对小文件进行查重存储,即实现了分布式存储,又能避免重复存储。

请参照图1,本发明提供一种共享文件的管理方法,包括:

s1:接收一待存储文件后,将所述待存储文件的文件信息存储至数据库表一;

s2:分割所述待存储文件成指定大小的两个以上的小文件,并计算每个小文件的校验码;

s3:逐一判断每个校验码是否已存储在数据库表二中,若否,则执行s4;若是,则执行s5;

s4:存储对应的小文件至指定区域,并存储对应的小文件包括小文件名、校验码和存储路径的分割信息至数据库表二,执行s5;

s5:存储数据库表二中对应当前校验码的分割信息的主键、数据库表一中所述文件信息的主键以及二者的分割关系至数据库表三。

从上述描述可知,本发明的有益效果在于:既实现了分布式存储,安全性更高;又不会重复存储内容一样的文件,能够显著节约存储空间和成本。

请参照图2,进一步地,还包括:

s6:选定一待下载文件后,依据所述待下载文件的文件信息确定其对应数据库表一的主键;

s7:依据所确定的数据库表一的主键,从数据库表三获取对应的分割关系;

s8:依据所获取的分割关系,确定所述待下载文件分割得到的每个小文件对应数据库表二的主键。

由上述描述可知,下载所需文件时,利用表一该文件记录的主键便可从表三中确定关于该文件在表二的主键,据此在表二中获取该文件的分割信息,进而实现对该文件的所有子文件的下载。

进一步地,还包括:

s9:依据所确定的数据库表二的主键,获取所有小文件的存储路径集;

s10:依据所述存储路径集,下载得到所述待下载文件。

由上述描述可知,获取到所需下载文件的所有子文件的存储路径后,便可具有针对性地快速下载得到所需文件。

进一步地,所述s10,包括:

s101:依序从所述存储路径集中读取存储路径;

s102:判断当前读取到的存储路径对应的小文件是否已存储在本地,若否,则执行s103;若是,则继续读取下一存储路径;

s103:判断前一存储路径对应的小文件是否完成下载;若是,则关闭下载所述前一存储路径对应的小文件的网络通道,并开启一输出到下载客户端的新的网络通道,通过所述新的网络通道从当前读取到的存储路径下载对应的小文件。

由上述描述可知,在下载小文件前,先判断本地是否已存在,能够避免重复下载相同文件,提高下载速度的同时节省本地存储空间。另外,针对每一个小文件,使用独立的网络通道进行下载,能显著提高数据下载的准确度,有效避免发生数据混乱。

进一步地,所述文件信息包括主键、上传用户id、文件名、文件大小、文件访问权限和上传时间;

所述分割信息还包括主键、小文件序号和小文件大小。

由上述描述可知,文件的上传者也作为文件信息的一部分,能够实现每个用户都拥有独立的上传文件空间,同时也有利于文件管理和追责;所上传的文件能够通过文件信息中的文件访问权限管理文件的共享范围,使文件在共享过程更具安全性。

本发明提供的另一个技术方案为:

一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现下述一种共享文件的管理方法所包含的所有步骤:

s1:接收一待存储文件后,将所述待存储文件的文件信息存储至数据库表一;

s2:分割所述待存储文件成指定大小的两个以上的小文件,并计算每个小文件的校验码;

s3:逐一判断每个校验码是否已存储在数据库表二中,若否,则执行s4;若是,则执行s5;

s4:存储对应的小文件至指定区域,并存储对应的小文件包括小文件名、校验码和存储路径的分割信息至数据库表二,执行s5;

s5:存储数据库表二中对应当前校验码的分割信息的主键、数据库表一中所述文件信息的主键以及二者的分割关系至数据库表三。

进一步地,还包括:

s6:选定一待下载文件后,依据所述待下载文件的文件信息确定其对应数据库表一的主键;

s7:依据所确定的数据库表一的主键,从数据库表三获取对应的分割关系;

s8:依据所获取的分割关系,确定所述待下载文件分割得到的每个小文件对应数据库表二的主键。

进一步地,还包括:

s9:依据所确定的数据库表二的主键,获取所有小文件的存储路径集;

s10:依据所述存储路径集,下载得到所述待下载文件。

进一步地,所述s10,包括:

s101:依序从所述存储路径集中读取存储路径;

s102:判断当前读取到的存储路径对应的小文件是否已存储在本地,若否,则执行s103;若是,则继续读取下一存储路径;

s103:判断前一存储路径对应的小文件是否完成下载;若是,则关闭下载所述前一存储路径对应的小文件的网络通道,并开启一输出到下载客户端的新的网络通道,通过所述新的网络通道从当前读取到的存储路径下载对应的小文件。

进一步地,所述文件信息包括主键、上传用户id、文件名、文件大小、文件访问权限和上传时间;

所述分割信息还包括主键、小文件序号和小文件大小。

从上述描述可知,对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。所述程序在被处理器执行后,同样能够实现对应各方法的有益效果。

其中,所述的存储介质可以是磁盘、光碟、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

实施例一

请参照1至图3,本实施例提供一种共享文件的存储和下载方法,可以用于任何文件数据的存储和共享。所述文件数据包括文档文件、软件数据包、音视频文件等形式的文件。

请参阅图1,所述方法的文件上传过程可以包括:

s1:接收一个待存储文件后,将该待存储文件包括上传用户id、文件名、文件大小、文件访问权限和上传时间文件信息存储至数据库表一,并生成该条记录的主键;

s2:按照预先设置的文件大小,将待存储文件分割成多个小文件,同时,计算每个小文件的校验码;所述校验码作为每个小文件的唯一标识码,可以是md5值等形式。

s3:逐一判断每个小文件的校验码是否已存在于数据库表二的记录中,若否,则执行s4;若是,则无需在数据表二中再生成对应该小文件的记录,而是直接执行s5;

s4:存储当前判断的这个小文件至指定区域,并将该小文件包括小文件名、校验码和存储路径的分割信息存储至数据库表二,同时,对应该条记录生成一主键,然后执行s5;

s5:将数据库表二中对应当前判断的这个校验码的小文件的分割信息(即已存在的、对应当前判断的小文件的表二记录)的主键、数据库表一中所述文件信息(即对应当前判断的小文件的“母文件”的表一记录)的主键以及二者的分割关系存储至数据库表三,生成一条分割关系的记录。如图3所示,为一具体示例中三个数据库表的组成及其关系示意图。

至此,完成了一个共享文件的上传步骤。并且,该存储方式为分布式存储方式,安全性更高;同时,通过先将文件进行分割,再依据校验码快速查重,因此,即使只是部分相同,也能够有效避免存储相同的内容,从而节省存储空间和成本;进一步地,针对每个文件,将上传者和文件访问权限也纳入文件信息中进行存储,能够对文件进行更有效地管理,同时再次提高共享文件的安全性。

下面,请参阅图2,对基于上述存储方式的文件下载过程作进一步说明:

s6:选定一待下载文件后,依据该待下载文件的文件信息确定其对应数据库表一的主键;

s7:依据所确定的数据库表一的主键,从数据库表三获取对应的分割关系;

s8:依据所获取的分割关系,确定待下载文件分割得到的每个小文件对应数据库表二的主键,得到一主键集合。

s9:依据所述主键集合,从数据表表二中获取所有小文件的存储路径,得到存储路径集合;

s10:依据所述存储路径集合,下载后拼接得到所要下载的文件。

实施例二

本实施例提供对应实施例一的一种具体运用场景:

s0:用户登录共享文件服务器的客户端,通过客户端选择要上传的文件,设置文件的共享方式(即文件访问权限),然后执行上传操作;

s1:共享文件服务器接收客户端上传的文件后,获取文件的文件信息(包括上传用户id、文件名、文件大小、文件访问权限和上传时间等),然后将文件信息插入数据库表1,并生成该条记录的主键(在本实施例中称为主键1);

s2:将文件分割成预先配置好大小的多个小文件,并计算每个小文件的md5值;

s3:针对每个小文件,查询数据库表二中是否存在相同的md5值数据;

若否,则将这个小文件存储到服务器的指定路径,并将这个小文件包括小文件名、md5值和存储路径等的分割信息插入数据库表二中,并生成该条记录的主键(在本实施例中称为主键2);最后,在数据库表三中插入:主键1、主键2、时间等的记录,并生成该记录的主键(称为主键3)。

若有,则说明已经存储有这个小文件了,无需重复存储和记录,只需要在数据库表三中插入:主键1、主键2(在数据库表二中查询到的相同md5值的记录的主键)、时间等的记录,并生成该记录的主键(称为主键3)。

s4:用户可以在客户端系统浏览自己可以下载的所有文件列表,共享文件服务器接收到客户端要下载的文件后,从数据库查询出组成要下载的文件的所有小文件的存储路径,并把所有的小文件进行合并成要下载的文件输出到客户端。

本实施例能够满足公司、企业等组织的成员把文件存储在文件服务器,共享给同事的需求,且有些文件所有人都可以获取,有些文件只能指定的人可以获取;还会针对上传同样的内容但文件名或其他信息不一样的文件进行查重,从而大大节省存储空间和成本。

实施例三

本实施例对应实施例一或实施例二,分别对共享文件的上传过程和下载过程作进一步地扩展:

一、共享文件的上传

请参阅图4,当服务器接收到上传的文件后,文件信息将保存到文件上传信息表(即数据库表一)中,然后开始读取文件;读取已经配置好字节长度的文件内容;将读取的文件内容按顺序存储到列表;判断顺序列表的大小是否等于配置好的字节长度,若否,则继续读取到目前的列表;若是,则表达达到分割大小,复制当前列表中的所有内容到一个新的顺序列表,清空原来的顺序列表,启动一个新的线程计算新的顺序列表中的内容的md5值;判断计算的md5值是否在上传文件分割后信息表(即表二)中已存在,若不存在,则将新的顺序列表中的内容保存到一个新文件中,并插入一条关于新的顺序列表中的内容的数据到上传文件分割后信息表(即表二)中,然后插入一条数据到文件分割关系表(即表三)中;若已存在,则插入一条数据到关系分割关系表(即表三)中。

当文件的内容全部读取完成,则判断顺序列表中是否有内容,若没有,则结束;若有,则执行上述的复制当前列表中的所有内容到一个新的顺序列表步骤及其后的步骤。

二、共享文件的下载

请参阅图5,选择要下载的文件后,查询文件上传信息表(即数据库表一)、上传文件分割后信息表(即表二)以及文件分割关系表(即表三)三个表的关联,获取到文件分割后的文件路径数据集,数据集按照文件名分组,分割后的文件序号按照升序排序;读取数据集的一条数据(文件名、分割的文件名、分割的文件路径等);判断数据集的数据是否读取完成,若是,则结束;若否,则判断本地是否存在相同的文件,若否,即是一个新文件,则继续判断是否已经下载完前一个文件,若是,则将用于下载前一个文件的网络通道关闭;重新打开一个输出到下载客户端的网络通道,用于下载新文件;若前一个文件还未下载完成,则重新打开一个输出到下载客户端的网络通道;最后,根据分割的文件路径读取分割的文件内容输出到已经打开的网络通道。

实施例四

本实施例对应实施例一至实施例三,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一至实施例三任一实施例所述的共享文件的管理方法所包含的所有步骤。具体的步骤内容在此不进行复述,详情请参阅实施例一至实施例三的记载。

综上所述,本发明提供的共享文件的管理方法、存储介质,实现了共享文件的分布式存储,能够显著提高安全性;能够避免重复存储和下载,节省存储空间和成本;能够实现每个用户都拥有独立的上传文件空间,同时也有利于文件管理和追责;所上传的文件能够通过文件信息中的文件访问权限管理文件的共享范围,使文件在共享过程更具安全性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1