CN109324998A - 一种文件处理方法、装置及系统 - Google Patents
一种文件处理方法、装置及系统 Download PDFInfo
- Publication number
- CN109324998A CN109324998A CN201811092920.5A CN201811092920A CN109324998A CN 109324998 A CN109324998 A CN 109324998A CN 201811092920 A CN201811092920 A CN 201811092920A CN 109324998 A CN109324998 A CN 109324998A
- Authority
- CN
- China
- Prior art keywords
- data
- data block
- file
- fingerprint
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件处理方法,该方法提出了一种新型的数据存储方式,该数据存储方式主要依赖于数据指纹库和文件信息库来实现数据存储,数据指纹库和文件信息库两者之间通过数据指纹进行关联,基于此,当需要存储某个文件时,将文件分割成低纬度的数据块,然后基于数据块来判断存储系统中是否已存储有相同数据,进而对于相同数据则不再重复存储,只需要再文件信息库中记录该文件与该数据块之间的相关关系即可,这样就能够极大地减小重复文件或者相似文件在存储系统中占用的空间,节约存储资源,提供存储空间利用率,以缓解大数据存储压力。另外,本申请还提供了对应的装置和设备。
Description
技术领域
本申请涉及数据存取技术领域,尤其涉及一种文件处理方法、装置及设备。
背景技术
随着大数据技术的发展与普及,各行各业都面临着大数据的存储压力。而面对不断增长的数据存储压力,大部分存储系统只能通过提升存储容量的方式来应对该问题。
然而提升存储容量的方式也只有两种,一种是在存储系统中增加更多磁盘,另一种是更换高容量版本的磁盘,但这种方式不仅受到磁盘技术的限制,增加了企业的经济成本,还增加了存储系统对磁盘的管理难度。
因此,目前亟需提供一种文件处理方法能够在不增加硬件成本的基础上,缓解大数据存储压力,以应对不断增长的数据存储需求。
发明内容
本申请实施例提供了一种文件处理方法,该方法通过将文件分割成多个小的数据块的方式,以数据块的维度进行文件存储,并且在存储时是基于数据块的数据指纹先进行数据匹配,以使存储系统对于相同数据仅存储一次,不再重复存储,从而能够极大地减小重复文件或者相似文件在存储系统中占用的空间,节约存储资源,提供存储空间利用率,以缓解大数据存储压力。
在本申请第一方面提供一种文件处理方法,其特征在于,所述方法包括:
获取待存储的文件;
对所述文件进行数据分割得到有序的多个数据块;
针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;
若匹配成功,则将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
可选的,所述方法还包括:
若匹配失败,则将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
可选的,所述利用哈希算法进行加密得到所述数据块对应的数据指纹,包括:
利用一种哈希算法对所述数据块进行加密得到一个哈希值,将所述一个哈希值作为所述数据块对应的数据指纹。
可选的,所述利用哈希算法进行加密得到所述数据块对应的数据指纹,包括:
利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
可选的,所述方法还包括:
接收文件下载请求,所述文件下载请求中包括待下载文件的唯一标识;
根据所述待下载文件的唯一标识,从所述文件信息库中获取与所述待下载文件相关联的数据块的数据指纹以及数据块的块顺序;
根据与所述待下载文件相关联的数据块的数据指纹,从所述数据指纹库中获取关联的多个存储地址,根据所述多个存储地址从所述存储系统中获取与所述待下载文件相关联的多个数据块;
根据与所述待下载文件相关联的数据块的块顺序,将与所述待下载文件相关联的多个数据块按顺序组合生成原始文件;
返回所述原始文件。
本申请第二方面提供了一种文件处理装置,所述装置包括:
获取模块,用于获取待存储的文件;
分块模块,用于对所述文件进行数据分割得到有序的多个数据块;
数据指纹生成模块,用于针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
匹配模块,用于将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;若匹配成功,则触发第一记录模块;
第一记录模块,用于在所述匹配模块匹配成功时,将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
可选的,所述装置还包括:
第二记录模块,用于将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
可选的,所述数据指纹生成模块具体用于利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
本申请第三方面提供了一种设备,所述设备包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于从所述存储器中读取所述程序,并在运行所述程序时以实现上述本申请第一方面提供的一种文件处理方法。
本申请第四方面提供了一种计算机存储介质,其上存储有程序,所述程序在被处理器执行时实现上述本申请第一方面提供的文件处理方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例中提供了一种文件处理方法,利用该方法进行文件存储管理时,针对待存储的文件并非直接进行文件存储,而是先对该文件进行数据分割,将其分割成多个数据块,然后针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹,进而将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;若匹配成功,则将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
可以看出,该方法提出了一种新型的数据存储方式,该数据存储方式主要依赖于数据指纹库和文件信息库来实现数据存储,数据指纹库和文件信息库两者之间通过数据指纹进行关联,基于此,当需要存储某个文件时,将文件分割成低纬度的数据块,然后基于数据块来判断存储系统中是否已存储有相同数据,进而对于相同数据则不再重复存储,只需要再文件信息库中记录该文件与该数据块之间的相关关系即可,这样就能够极大地减小重复文件或者相似文件在存储系统中占用的空间,节约存储资源,提供存储空间利用率,以缓解大数据存储压力。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种文件处理方法的应用场景图;
图2为本申请实施例提供的一种文件处理方法的流程图;
图3为本申请实施例提供的一种文件读取方法的流程图;
图4为本申请实施例提供的一种文件处理装置的结构图;
图5为本申请实施例提供的一种设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本申请提供的一种文件处理方法能够应用于各个行业中需要进行数据存储的场景中。
为了便于理解,下面结合图1对本申请提供的一种文件处理方法在实际场景中的应用情况进行示例性说明。
参见图1示出的本申请实施例提供的一种文件处理方法的应用场景图,如图1所示,本申请实施例提供的一种文件处理方法可以程序形式应用于服务器100中,该服务器100是指具有数据存储功能的服务器,其能够客户端/服务器模式(简称C/S)或者Web浏览器/服务器模式(简称B/S)的工作模式,为用户提供文件存储服务。
应理解的是,该服务器可以是应用服务器,也可以为web服务器,还可以存储服务器等等。
可以理解的是,用户通过终端200中配置的客户端或者浏览器向服务器100发起文件存储请求,则服务器100响应于该文件存储请求,利用本申请实施例提供的该文件处理方法,对待存储的文件A进行处理,以实现文件存储。服务器100并非是直接将该文件A存储在存储系统中,而是先将该文件A分割成有序的多个数据块如A1、A2、A3……An,然后利用哈希算法哈希算法哈希算法对每个数据块分别进行加密得到每个数据块对应的数据指纹,一个数据块对应一个数据指纹。
对于服务器100而言,其在进行文件处理过程中,需要维护两个数据库,一个是文件信息库101,,另一个是数据指纹库102。这两个数据库可以部署在服务器100上,也可以部署在其他硬件设备中。其中,该数据指纹库专门用于记录存储系统中已存储的数据块对应的数据指纹以及该数据块在存储系统中的存储地址;该文件信息库专门用于记录该存储系统中已存储的文件的唯一标识、该文件相关的数据块对应的数据指纹、以及数据块在该文件中的块顺序这三者的关联关系。
基于此,服务器100在处理文件A时,需要先基于数据指纹库和文件A相关的数据块的数据指纹,先判断文件A相关的数据块的数据指纹与数据指纹库中的某个数据指纹是否相匹配,如果是,则表明该数据块已经存储于存储系统中,在这种情况下,则无需再重复存储,而仅需在文件信息库中记录该文件A的唯一标识、该数据块对应的数据指纹以及该数据块对应的块顺序这三者的关联关系。如图1中所示的,假设数据块A1的数据指纹与数据指纹库中的某个数据指纹相匹配,则表明存储系统中已经存储有该数据块A1,此时在无需再重复存储该数据块A1,而是将该数据块A1对应的数据指纹例如abcd、该数据块A1对应的块顺序例如编号1以及该文件A的唯一标识ID例如001三者之间的关联关系记录在文件信息库101中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
如果某个数据块的数据指纹与数据指纹库中每个数据指纹都不匹配,则表明该数据块是新的数据,存储系统中还未存储有相同数据,在这种情况下,则需要将该数据块存储于存储系统,然后将该数据块在存储系统中的存储地址以及该数据块对应的数据指纹记录在数据指纹库102中,并将该数据块对应的数据指纹与该数据块对应的块顺序记录在所述文件信息库101中。
如图1中所示的,假设数据块A2的数据指纹与数据指纹库中的所有数据指纹都不匹配,则表明存储系统中并未存储有该数据块A2,此时则需要将该数据块A2存储于该存储系统中,并将数据块A2对应的数据指纹以及该数据块A2对应的存储地址存储于该数据指纹库102中,同时,还需要将该数据块A2与文件A的唯一标识ID001以及该数据块A2对应的块顺序如编号2这三者的关联关系存储于文件信息库101中。
需要说明的时,上述存储系统是指具有数据存储功能的软件系统,其主要是依赖于磁盘等硬件存储元件来进行数据存储。该存储系统可以部署在服务器100之后,也可以部署在于服务器100能够通信,并且由服务器100控制的其他存储设备之中。
服务器100按照上述方式对文件A进行存储,可以看出,对于存储系统而言,将文件分割成数据块,从而将数据量从高纬度降低到低纬度,以低纬度的数据块为单位来处理文件,对于相同数据无需重复存储,这样就能够极大地减小重复文件或者相似文件在存储系统中占用的空间,节约存储资源,提供存储空间利用率,以缓解大数据存储压力。
下面从服务器的角度对本申请提供的一种文件处理方法进行解释说明。
参见图2示出的本申请实施例提供的一种文件处理方法的流程图,如图2所示,该方法包括:
S201:获取待存储的文件;
在具体实现时,用户可以通过终端中配置的客户端或者浏览器向服务器发送文件存储请求,该文件存储请求中携带有待存储的文件;基于此,服务器可以接收终端发送的文件存储请求,从该文件存储请求中获取待存储的文件。当然,该文件存储请求中也可以仅携带待存储的文件的获取地址,基于此,服务器可以接收终端发送的文件存储请求,从该文件存储请求中解析得到获取地址,然后基于该获取地址主动获取待存储的文件。
当然,用户也可以在服务器中预先配置好待存储的文件的获取地址,则服务器在工作时,只需要根据预先设置的该获取地址主动获取待存储的文件。
应理解的是,该待存储的文件的格式可以是多种多样的,例如其可以是文本、图片、音频、视频、计算机代码等等。这里的待存储的文件可以理解为是需要被存储的数据。本申请的实现对需要被存储的数据的具体表现形式、具体内容、数据大小等等均不做限制。
S202:对所述文件进行数据分割得到有序的多个数据块;
服务器在获取得到待存储的文件之后,不是直接进行存储,而是需要先对文件做数据分割处理,以将该文件分割成多个数据块。
在具体实现时,服务器可以按照预设的块大小对该文件进行数据分割处理,应理解的是,该预设的块大小的值越小,则数据分割的维度就越细,则在数据指纹匹配时被匹配命中的可能性就越高,对应的存储空间的利用率就越高,于此同时,需要被匹配的数据指纹的个数就越多,匹配操作的工作量也就越大,服务器的处理性能也会受到一定影响。
因此,在预先设置该块大小的值时,可以兼容考虑这服务器的处理性能和存储空间的利用率这两个因素来进行设置。例如,可以设置该块大小为64兆比特(MB)、128MB或者218MB等等。
应理解的是,文件内容是有序的,因此,在进行数据分割所得到多个数据块时,这些数据块之间也是有先后顺序的,只有严格按照数据块之间的先后顺序依次拼接各个数据块才能够恢复出原文件。因此,在数据分割时还需要记录数据块之间的顺序,即为每个数据块确定对应的块顺序,一个数据块的块顺序具体是指该数据块在文件中所处的位置顺序,不同的数据块对应的块顺序肯定不同。
例如,一个文件被分割成3个数据块,每个数据块都具有一个块顺序,。例如,数据块1对应的块顺序为1,数据块2对应的块顺序为2,数据块3对应的块顺序为3。则只有按照块顺序1、2、3的先后顺序,将数据块1、数据块2、数据块3依次拼接才能够组合恢复出原文件。反之,一旦顺序打乱则就无法恢复出原文件。
S203:针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
在具体实现时,该哈希算法,也被称为哈希加密算法,哈希算法理论上是具有唯一性的,所谓唯一性是指一个数据块的哈希值能够唯一标识该数据块,即,两个不同的数据块即使区别很小,两者所对应的哈希值也一定不相同。通过哈希算法计算得到数据块的数据指纹,该数据指纹具有唯一性,即一个数据块的数据指纹是能够唯一标识该数据块的。应理解的是,哈希算法可以将任意长度的二进制值映射为较短的固定长度的二进制值,这个固定长度的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果进行哈希运算的数据哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。通过哈希算法计算得到数据块的数据指纹,该数据指纹的长度较小,因此,该数据指纹所占存储空间相比数据块本身所占存储空间而言是非常小的。
在具体实现时,可以采用的哈希算法多种多样,例如可以采用MD2、MD4、MD5、SHA1、SHA256或者SHA512等算法,当然并不局限于此。
在具体实现时,可以利用一种哈希算法对所述数据块进行加密得到一个哈希值,将所述一个哈希值作为所述数据块对应的数据指纹。应理解的是,服务器在进行文件存储处理时,对所有文件均采用统一的哈希算法进行处理,才能保证后续匹配操作正常处理。
在具体实现时,为了提高在实际应用中数据指纹的唯一性和可靠性,可以利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
举例说明,对于一个数据块,分别采用MD2和SHA512两种哈希算法对其进行哈希运算得到两个哈希值,进而将这两个哈希值拼接成一个数值,将该数值作为该数据块对应的数据指纹。
在具体实现时,可以采用两种哈希算法来计算数据指纹,当然也可以采用三种或者更多种哈希算法进行运算,但对于服务器而言,在对每个文件进行处理时,其所采用的多个哈希算法是固定的,且多个哈希算法对应的哈希值得拼接顺序也是固定的,这样才能保证后续匹配操作的正常处理。
通过步骤S203能够针对一个文件所分割出的多个数据块分别计算出其对应的数据指纹,也称为该数据块的数据指纹。在具体实现时,可以依次针对每个数据块进行加密计算得到数据指纹。也可以并行地针对多个数据块计算各自的数据指纹。例如,通过多进程的方式并行执行加密计算。
在计算得到每个数据块对于的数据指纹之后,再通过后续S204和S205来确定如何存储。
S204:将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;
应理解的是,在执行匹配操作时,可以采用串行处理的方式依次针对多个数据块进行匹配,也可以采用并行处理的方式,对多个数据块并列进行匹配处理。
如上文所述的,在具体实现时,服务器需要维护两个数据库,其中一个就是数据指纹库,其专门用于记录存储系统中已存储的数据块的存储地址以及数据块对应的数据指纹两者之间的关联关系。
下面以表1为例对数据指纹库进行示例性说明。
表1数据指纹库
S205:若匹配成功,则将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
经过S204匹配处理,若待存储的文件的数据块与数据指纹库中的某个数据指纹匹配成功,则表明存储系统中已存储有该数据块,在这种情况下,则不再重复存储该数据块,而是仅将该数据块对应的数据指纹、该数据块对应的块顺序以及该待存储的文件的唯一标识这三者之间的关联关系记录于文件信息库中。应理解的是,文件信息库用于记录存储系统中存储的数据块的数据指纹以及该数据块在其所属文件的位置顺序。
为了便于理解,下面结合表2对该文件信息库进行示例说明。
表2文件信息库
应理解的是,在实际文件处理时,一个文件被分割成的多个数据块,有些可能也属于其他文件的数据块,其已经被存储于存储系统中,而有些数据块是全新的数据块,存储系统中还没有存储过相同的数据,基于此,针对这些全新的数据块,数据指纹库中就没有相同的数据指纹,则就会匹配失败,在匹配失败时,则执行步骤S206(图2未示出),将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
通过上述实施例可以看出,本申请提供的文件处理方法提出了一种新型的数据存储方式,该数据存储方式主要依赖于数据指纹库和文件信息库来实现数据存储,数据指纹库和文件信息库两者之间通过数据指纹进行关联,基于此,当需要存储某个文件时,将文件分割成低纬度的数据块,然后基于数据块来判断存储系统中是否已存储有相同数据,进而对于相同数据则不再重复存储,只需要再文件信息库中记录该文件与该数据块之间的相关关系即可,这样就能够极大地减小重复文件或者相似文件在存储系统中占用的空间,节约存储资源,提供存储空间利用率,以缓解大数据存储压力。
在实际应用中,文件存储之后许多业务也需要再读取文件,基于此,本申请还提供了对应的解决方案,以支持文件读取。具体的,在上述图2所示方法的基础上,服务器按照上述方法实现文件存储,在已存储有文件的基础上,服务器还可以提供文件读取服务,具体的,服务器可以按照图3所示方法步骤为用户提供文件读取服务。需要说明的时,在实际应用中,服务器执行图2所示方法步骤的过程和执行图3所示方法步骤的过程可以是并行地。即,服务器能够同时实现文件的存储和文件的读取。
参见图3示出的文件读取方法的流程图,该方法包括:
S301:接收文件下载请求,所述文件下载请求中包括待下载文件的唯一标识;
在具体实现时,用户可以通过终端内置的客户端或者浏览器向服务器发送文件下载请求,在文件下载请求中携带有待下载的文件的唯一标识。即通过文件下载请求以请求服务器提供待下载的文件。对应的,服务器接收到该文件下载请求之后,从该文件下载请求中获取待下载文件的唯一标识。进而执行步骤S302。
S302:根据所述待下载文件的唯一标识,从所述文件信息库中获取与所述待下载文件相关联的数据块的数据指纹以及数据块的块顺序;
在具体实现时,服务器先根据该待下载文件的唯一标识,从文件信息库中获取该待下载文件相关联的数据块的数据指纹以及数据块的块顺序。即,获知该待下载文件所包含的数据块各自的数据指纹以及各自在文件中的位置顺序。进而执行步骤S303。
S303:根据与所述待下载文件相关联的数据块的数据指纹,从所述数据指纹库中获取关联的多个存储地址,根据所述多个存储地址从所述存储系统中获取与所述待下载文件相关联的多个数据块;
在具体实现时,服务器根据获取到的数据指纹,从数据指纹库中查找对应的存储地址,进而根据存储地址从存储系统中读取对应的数据块。
S304:根据与所述待下载文件相关联的数据块的块顺序,将与所述待下载文件相关联的多个数据块按顺序组合生成原始文件;
在具体实现时,服务器获取到待下载文件相关的数据块之后,需要恢复出待下载文件的原始内容,具体的,服务器需要按照块先后顺序,根据每个数据块的块顺序将多个数据块拼接组合恢复出原始文件,进而执行S305。
S305:返回所述原始文件。
在具体实现时,服务器在恢复出终端所请求的待下载文件对应的原始文件之后,就将该原始文件返回给终端。
与上述方法相对应的本申请还提供了对应的装置,下面结合图4对该装置进行介绍。
参见图4示出的本申请实施例提供的一种文件处理装置的结构图,该装置400包括:
获取模块401,用于获取待存储的文件;
分块模块402,用于对所述文件进行数据分割得到有序的多个数据块;
数据指纹生成模块,用于针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
匹配模块403,用于将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;若匹配成功,则触发第一记录模块;
第一记录模块404,用于在所述匹配模块匹配成功时,将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
可选的,所述装置还包括:
第二记录模块,用于将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
可选的,所述数据指纹生成模块具体用于利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
与上述方法相对应的本申请还提供了对应的硬件设备,下面结合图5对该设备进行介绍。
参见图4示出的本申请实施例提供的一种设备的结构图,该设备500包括:
存储器501和处理器502;
所述存储器501,用于存储程序;
所述处理器502,用于从所述存储器中读取所述程序,并在运行所述程序时以实现上述本申请实施例提供的一种文件处理方法。
其中,所述存储器501可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机存储介质,其上存储有程序,所述程序在被处理器执行时实现如上述本申请实施例提供的一种文件处理方法的步骤。这样,能够保证本申请提供的一种文件处理方法能够被快速地移植到任意设备中得以实现。
另外,本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如上述本申请实施例提供的一种文件处理方法的步骤的程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种文件处理方法,其特征在于,所述方法包括:
获取待存储的文件;
对所述文件进行数据分割得到有序的多个数据块;
针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;
若匹配成功,则将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
2.根据权利要求1所述方法,其特征在于,所述方法还包括:
若匹配失败,则将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
3.根据权利要求1所述方法,其特征在于,所述利用哈希算法进行加密得到所述数据块对应的数据指纹,包括:
利用一种哈希算法对所述数据块进行加密得到一个哈希值,将所述一个哈希值作为所述数据块对应的数据指纹。
4.根据权利要求1所述方法,其特征在于,所述利用哈希算法进行加密得到所述数据块对应的数据指纹,包括:
利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
5.根据权利要求1所述方法,其特征在于,所述方法还包括:
接收文件下载请求,所述文件下载请求中包括待下载文件的唯一标识;
根据所述待下载文件的唯一标识,从所述文件信息库中获取与所述待下载文件相关联的数据块的数据指纹以及数据块的块顺序;
根据与所述待下载文件相关联的数据块的数据指纹,从所述数据指纹库中获取关联的多个存储地址,根据所述多个存储地址从所述存储系统中获取与所述待下载文件相关联的多个数据块;
根据与所述待下载文件相关联的数据块的块顺序,将与所述待下载文件相关联的多个数据块按顺序组合生成原始文件;
返回所述原始文件。
6.一种文件处理装置,其特征在于,所述装置包括:
获取模块,用于获取待存储的文件;
分块模块,用于对所述文件进行数据分割得到有序的多个数据块;
数据指纹生成模块,用于针对所述多个数据块中的每个数据块,利用哈希算法进行加密得到所述数据块对应的数据指纹;
匹配模块,用于将所述数据块对应的数据指纹与数据指纹库中的数据指纹进行匹配,所述数据指纹库用于记录存储系统已存储的数据块对应的存储地址以及数据块对应的数据指纹的关联关系;若匹配成功,则触发第一记录模块;
第一记录模块,用于在所述匹配模块匹配成功时,将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库中,所述块顺序用于表征所述数据块在所述文件中的位置顺序。
7.根据权利要求6所述装置,其特征在于,所述装置还包括:
第二记录模块,用于将所述数据块存储于所述存储系统中,将所述数据块在所述存储系统中的存储地址以及所述数据块对应的数据指纹记录在所述数据指纹库中,并将所述数据块对应的数据指纹、所述数据块对应的块顺序以及所述文件的唯一标识三者之间的关联关系记录在文件信息库记录在所述文件信息库中。
8.根据权利要求6所述装置,其特征在于,所述数据指纹生成模块具体用于利用多种哈希算法分别对所述数据块进行加密得到多个哈希值,将所述多个哈希值组合生成一个数值,将所述数值作为所述数据块对应的数据指纹。
9.一种设备,其特征在于,所述设备包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,用于从所述存储器中读取所述程序,并在运行所述程序时以实现上述权利要求1至5任一项所述的文件处理方法。
10.一种计算机存储介质,其特征在于,其上存储有程序,所述程序在被处理器执行时实现如权利要求1至5任一项所述的文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811092920.5A CN109324998A (zh) | 2018-09-18 | 2018-09-18 | 一种文件处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811092920.5A CN109324998A (zh) | 2018-09-18 | 2018-09-18 | 一种文件处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109324998A true CN109324998A (zh) | 2019-02-12 |
Family
ID=65266181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811092920.5A Pending CN109324998A (zh) | 2018-09-18 | 2018-09-18 | 一种文件处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109324998A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659472A (zh) * | 2019-09-29 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种密码卡以及数据存储系统 |
CN111061830A (zh) * | 2019-12-27 | 2020-04-24 | 深圳市元征科技股份有限公司 | 一种汽修数据的处理方法及装置 |
CN111277605A (zh) * | 2020-02-07 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 数据分享方法、装置、计算机设备以及存储介质 |
CN111949652A (zh) * | 2020-06-22 | 2020-11-17 | 联想(北京)有限公司 | 一种数据指纹检测方法、装置及存储介质 |
CN112347040A (zh) * | 2020-09-30 | 2021-02-09 | 宇龙计算机通信科技(深圳)有限公司 | 文件管理方法、装置、存储介质及终端 |
CN112511612A (zh) * | 2020-11-19 | 2021-03-16 | 中国联合网络通信集团有限公司 | 云存储数据存储方法、装置、系统、设备及存储介质 |
CN112579611A (zh) * | 2020-12-29 | 2021-03-30 | 珠海金山网络游戏科技有限公司 | 一种数据处理方法及装置 |
CN112835538A (zh) * | 2020-03-27 | 2021-05-25 | 威盛电子股份有限公司 | 数据存储系统及其全局去重复方法 |
CN112988663A (zh) * | 2021-03-11 | 2021-06-18 | 维沃移动通信有限公司 | 文件存储方法和电子设备 |
CN113254402A (zh) * | 2021-05-18 | 2021-08-13 | 福州理工学院 | 共享文件的管理方法、存储介质 |
CN113486374A (zh) * | 2021-07-14 | 2021-10-08 | 郑州轻工业大学 | 一种基于云计算的计算机数据存储、读取方法和系统 |
CN113505115A (zh) * | 2021-07-07 | 2021-10-15 | 北京金山云网络技术有限公司 | 一种数据批量导入方法、装置及电子设备 |
CN113553306A (zh) * | 2021-07-27 | 2021-10-26 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN114244855A (zh) * | 2020-09-08 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN115114670A (zh) * | 2022-08-31 | 2022-09-27 | 天津联想协同科技有限公司 | 基于外链的文件解锁方法、装置、网盘及存储介质 |
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN103530201A (zh) * | 2013-07-17 | 2014-01-22 | 华中科技大学 | 一种适用于备份系统的安全数据去重方法和系统 |
CN103685162A (zh) * | 2012-09-05 | 2014-03-26 | 中国移动通信集团公司 | 文件存储和共享方法 |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN106980680A (zh) * | 2017-03-30 | 2017-07-25 | 联想(北京)有限公司 | 数据存储方法及存储设备 |
CN108415669A (zh) * | 2018-03-15 | 2018-08-17 | 深信服科技股份有限公司 | 存储系统的数据去重方法及装置、计算机装置及存储介质 |
-
2018
- 2018-09-18 CN CN201811092920.5A patent/CN109324998A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685162A (zh) * | 2012-09-05 | 2014-03-26 | 中国移动通信集团公司 | 文件存储和共享方法 |
CN103873504A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 数据分块存储至分布式服务器的系统及方法 |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN103530201A (zh) * | 2013-07-17 | 2014-01-22 | 华中科技大学 | 一种适用于备份系统的安全数据去重方法和系统 |
CN106980680A (zh) * | 2017-03-30 | 2017-07-25 | 联想(北京)有限公司 | 数据存储方法及存储设备 |
CN108415669A (zh) * | 2018-03-15 | 2018-08-17 | 深信服科技股份有限公司 | 存储系统的数据去重方法及装置、计算机装置及存储介质 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659472A (zh) * | 2019-09-29 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种密码卡以及数据存储系统 |
CN111061830A (zh) * | 2019-12-27 | 2020-04-24 | 深圳市元征科技股份有限公司 | 一种汽修数据的处理方法及装置 |
CN111061830B (zh) * | 2019-12-27 | 2023-12-05 | 深圳市元征科技股份有限公司 | 一种汽修数据的处理方法及装置 |
CN111277605A (zh) * | 2020-02-07 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 数据分享方法、装置、计算机设备以及存储介质 |
CN111277605B (zh) * | 2020-02-07 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 数据分享方法、装置、计算机设备以及存储介质 |
CN112835538A (zh) * | 2020-03-27 | 2021-05-25 | 威盛电子股份有限公司 | 数据存储系统及其全局去重复方法 |
CN111949652A (zh) * | 2020-06-22 | 2020-11-17 | 联想(北京)有限公司 | 一种数据指纹检测方法、装置及存储介质 |
CN114244855B (zh) * | 2020-09-08 | 2024-01-02 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN114244855A (zh) * | 2020-09-08 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 指纹文件的存储方法、装置、设备及可读存储介质 |
CN112347040A (zh) * | 2020-09-30 | 2021-02-09 | 宇龙计算机通信科技(深圳)有限公司 | 文件管理方法、装置、存储介质及终端 |
CN112511612A (zh) * | 2020-11-19 | 2021-03-16 | 中国联合网络通信集团有限公司 | 云存储数据存储方法、装置、系统、设备及存储介质 |
CN112579611A (zh) * | 2020-12-29 | 2021-03-30 | 珠海金山网络游戏科技有限公司 | 一种数据处理方法及装置 |
CN112579611B (zh) * | 2020-12-29 | 2024-03-19 | 珠海金山数字网络科技有限公司 | 一种数据处理方法及装置 |
CN112988663A (zh) * | 2021-03-11 | 2021-06-18 | 维沃移动通信有限公司 | 文件存储方法和电子设备 |
CN113254402A (zh) * | 2021-05-18 | 2021-08-13 | 福州理工学院 | 共享文件的管理方法、存储介质 |
CN113505115A (zh) * | 2021-07-07 | 2021-10-15 | 北京金山云网络技术有限公司 | 一种数据批量导入方法、装置及电子设备 |
CN113486374A (zh) * | 2021-07-14 | 2021-10-08 | 郑州轻工业大学 | 一种基于云计算的计算机数据存储、读取方法和系统 |
CN113553306B (zh) * | 2021-07-27 | 2023-07-21 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN113553306A (zh) * | 2021-07-27 | 2021-10-26 | 重庆紫光华山智安科技有限公司 | 数据处理方法及数据存储管理系统 |
CN115114670A (zh) * | 2022-08-31 | 2022-09-27 | 天津联想协同科技有限公司 | 基于外链的文件解锁方法、装置、网盘及存储介质 |
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109324998A (zh) | 一种文件处理方法、装置及系统 | |
CN106874348B (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN110689349B (zh) | 一种区块链中的交易哈希值存储和搜索方法及装置 | |
US9811424B2 (en) | Optimizing restoration of deduplicated data | |
CN112328435B (zh) | 目标数据备份和恢复的方法、装置、设备及存储介质 | |
US8984085B2 (en) | Apparatus and method for controlling distributed memory cluster | |
CN104902010A (zh) | 一种云端存储文件的方法和系统 | |
CN105630779A (zh) | 一种基于分布式文件系统的小文件存储方法和装置 | |
CN108415714A (zh) | 移动终端的系统升级方法及装置 | |
WO2012063755A1 (ja) | 分散アーカイブシステム並びにデータアーカイブ装置及びデータ復元装置 | |
CN110020544A (zh) | 区块链的区块中存储记录的哈希信息处理方法和系统 | |
CN108183973A (zh) | 一种流媒体量子流数据块结构及加解密方法 | |
KR20170102219A (ko) | 트랜잭션을 처리하기 위한 방법 및 장치 | |
CN101840471A (zh) | 文档权限控制方法和装置 | |
CN108399175A (zh) | 一种数据存储、查询方法及其装置 | |
CN111950025A (zh) | 一种基于区块链智能合约的文件分布式存储方法 | |
CN108334340A (zh) | 一种跨环境数据通信方法、装置和系统 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN111324902A (zh) | 一种基于区块链的数据存取方法、装置及系统 | |
CN103888424A (zh) | 集群式数据加密系统及其数据处理方法 | |
CN109934584B (zh) | 区块链账户交易方法及设备 | |
CN102624545A (zh) | 网管系统的数据备份方法、装置和恢复方法、装置 | |
CN102609509A (zh) | 哈希数据处理方法和装置 | |
CN113297611A (zh) | 数据处理、加密存储、读取方法、设备及存储介质 | |
JP2019049914A (ja) | ファイル転送システムおよびファイル転送方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190212 |
|
RJ01 | Rejection of invention patent application after publication |