CN114564446A - 一种文件存储的方法、装置、系统及存储介质 - Google Patents
一种文件存储的方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN114564446A CN114564446A CN202210200624.2A CN202210200624A CN114564446A CN 114564446 A CN114564446 A CN 114564446A CN 202210200624 A CN202210200624 A CN 202210200624A CN 114564446 A CN114564446 A CN 114564446A
- Authority
- CN
- China
- Prior art keywords
- file
- result
- hash
- stored
- blocking
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及计算机技术领域,尤其涉及一种文件储存的方法、装置、系统及存储介质。该方法包括:获取待存储文件以及对应的文件标识和上链数据,对待存储文件进行哈希处理,确定第一哈希结果,基于文件标识,判断待存储文件是否为首次上传文件,当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件,基于待存储文件和原始文件,确定差异文件,对差异文件进行哈希处理,确认第二哈希结果,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。通过采用了文件之间相互对比的方式,使得最终存储的仅有差异文件和原始文件,无需将大量的相似文件反复上传,极大的提高了存储效率。
Description
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种文件储存的方法、装置、系统及存储介质。
背景技术
建筑信息模型(Building Information Modeling,BIM)技术作为目前建筑智能制造的核心,得到了国内外广泛的认可和使用,建筑人员通过建立和使用建筑三维信息模型,从而更好的去完善建筑规划和设计,为建设项目的管理提供参考依据。
但是,由于使用BIM技术的人员越来越多,使用过程中产生的过程数据也越来越多,现有技术下,无法对大量的过程数据进行有效的存储。
因此,需要一种文件存储的方法、装置、系统及存储介质,解决上述问题。
发明内容
鉴于此,为解决现有技术中上述技术问题,本发明实施例提供一种文件储存的方法、装置、系统及存储介质。
第一方面,本发明实施例提供一种文件储存的方法,该方法包括:
获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息;
对待存储文件进行哈希处理,确定第一哈希结果;
基于文件标识,判断待存储文件是否为首次上传文件;
当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件;
基于待存储文件和原始文件,确定差异文件;
对差异文件进行哈希处理,确认第二哈希结果;
基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
在一个可能的实施方式中,当基于文件标识,确定待存储的文件为首次上传文件时,方法还包括:
对首次上传文件进行分块处理,获取首次上传文件的分块结果;
将首次上传文件的分块结果存入存储区域;
对首次上传文件的分块结果进行哈希处理,确定与首次上传文件的每一个分块结果分别对应的哈希结果;
基于智能合约将首次上传文件对应的上链数据和与首次上传文件的每一个分块结果对应的哈希结果上传至区块链。
在一个可能的实施方式中,基于待存储文件和原始文件,确定差异文件,包括:
对待存储文件进行分块处理,确定待存储文件分块结果;
对待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
对原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,原始文件分块结果为事先存储在存储区域中的首次上传文件分块结果;
根据第三哈希结果和第四哈希结果,确定待存储文件分块结果中与原始文件分块结果中存在差异的差异数据块;
基于差异数据块,生成差异文件。
在一个可能的实施方式中,基于差异数据块,生成差异文件,包括:
对差异数据块进行语义分析处理,获取语义分析处理结果;
整合语义分析处理结果,生成差异文件。
在一个可能的实施方式中,还包括:
对差异文件进行哈希处理,确定第五哈希结果;
将待存储文件分块结果,各个第三哈希结果,各个第四哈希结果和第五哈希结果存储至存储区域。
第二方面,本发明实施例提供一种文件储存的装置,该装置包括:
获取模块,用于获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息;
处理模块,用于对待存储文件进行哈希处理,确定第一哈希结果;基于文件标识,判断待存储文件是否为首次上传文件;当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件;基于待存储文件和原始文件,确定差异文件;对差异文件进行哈希处理,确认第二哈希结果;
上传模块,用于基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
在一个可能的实施方式中,处理模块还用于当基于文件标识,确定待存储的文件为首次上传文件时,对首次上传文件进行分块处理,获取首次上传文件的分块结果;
将首次上传文件的分块结果存入存储区域;对首次上传文件的分块结果进行哈希处理,确定与首次上传文件的每一个分块结果分别对应的哈希结果;
上传模块,还用于基于智能合约将首次上传文件对应的上链数据和与首次上传文件的每一个分块结果对应的哈希结果上传至区块链。
在一个可能的实施方式中,处理模块,用于:
对待存储文件进行分块处理,确定待存储文件分块结果;
对待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
对原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,原始文件分块结果为事先存储在存储区域中的首次上传文件分块结果;
根据第三哈希结果和第四哈希结果,确定待存储文件分块结果中与原始文件分块结果中存在差异的差异数据块;
基于差异数据块,生成差异文件。
第三方面,本申请提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器执行如第一方面中任一的方法的步骤。
第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如第一方面中任一项的方法的步骤。
本发明实施例提供的一种文件储存的方法,获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息,对待存储文件进行哈希处理,确定第一哈希结果,基于文件标识,判断待存储文件是否为首次上传文件,当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件,基于待存储文件和原始文件,确定差异文件,对差异文件进行哈希处理,确认第二哈希结果,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
通过采用了文件之间相互对比的方式,确定待存储文件与原始文件的区别,并根据这些区别生成差异文件,使得最终存储的仅有差异文件和原始文件,无需将大量的相似文件反复上传,极大的提高了存储效率,同时,将执行信息,例如修改或上传文件的操作员,上传时间等数据作为上链数据,上传至区块链,确保了在后续工作中,可以查询到工作过程中何时何人对数据进行了修改或上传,方便后续的责任划分。
附图说明
图1为本发明实施例提供的一种文件储存的方法流程示意图;
图2为本发明实施例提供的一种文件储存的方法流程示意图;
图3为本发明实施例提供的一种文件分块的示意图;
图4为本发明实施例提供的一种文件哈希值对比示意图;
图5为本发明实施例提供的一种文件储存的装置结构示意图;
图6为本发明实施例提供一种文件储存的系统结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种文件储存的方法流程示意图,该方法步骤执行过程,具体可以参见图1所示,该方法包括:
S11,获取待存储文件以及对应的文件标识和上链数据。
具体的,获取待存储文件以及对应的文件标识和上链数据的方式包括但不限于以下方式,例如,响应于客户端的上传请求,获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息,进一步的,执行信息包括但不限于上传时间,上传人员等等。
例如,假设存在用户A,在时刻α时,将待存储文件X通过服务器进行上传,并设置待存储文件X对应的文件标识为:非首次上传文件。则获取待储存文件X,并记录上链数据:操作员用户A,上传时间时刻α,记录文件标识:非首次上传文件。其中,上链数据用于记录上次文件的操作员和操作时间,为后续工作中,查询是谁对文件进行的上传提供数据支持,方便后续责任的划分。
S12,对待存储文件进行哈希处理,确定第一哈希结果。
具体的,哈希计算的方式包括但不限于安全散列算法1(Secure Hash Algorithm1,SHA-1)、消息摘要算法(Message Digest Algorithm,MD5)、除留余数法等等。
例如,仍以上述用户A上传的待储存文件X为例,在检测到待储存文件X后,对待储存文件X进行哈希处理,获取对应的哈希结果,记为father_hash。
S13,基于文件标识,判断待存储文件是否为首次上传文件。
具体的,判断时可以直接根据获取的文件标识记录进行判断。
例如,仍以上述用户A上传的待储存文件X和它对应的文件标识为例,很显然,对应待储存文件X的文件标识为:非首次上传文件,因此判断待储存文件X为非首次上传文件,输出判断结果。
S14,当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件。
具体的,预设的存储区域包括但不限于是以下介质:机械硬盘,固态硬盘等等。
例如,仍以上述用户A上传的待储存文件X和它对应的文件标识为例,同时假设预设的存储区域为部署的外部机械硬盘,当确认待储存文件X为非首次上传文件后,从预设的外部机械硬盘中调取原始文件origin_file。
S15,基于待存储文件和原始文件,确定差异文件。
具体的,差异文件为新生成的文件,其中记录有待存储文件与原始文件的区别。
例如,假设待存储文件中记录为“前门,后门,窗户A,窗户B”。而在原始文件中记录为“前门,后门,窗户A,窗户B,窗户C”,则经过处理后,确定的差异文件为“删除窗户C”。
S16,对差异文件进行哈希处理,确认第二哈希结果。
具体的,哈希计算的方式包括但不限于SHA-1、MD5、除留余数法等等。
例如,假设生成了差异文件M,则可以对差异文件M进行哈希处理,获取对应的哈希结果,记为M_hash。
S17,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
具体的,区块链的选择可以根据实际应用的需求进行选择。
例如,当在BIM的应用场景下,处于安全的考虑,则需要选择联盟链作为目标区块链。仍以前述上链数据,father_hash和M_hash为例,在BIM的应用场景下,则需要基于智能合约将前述上链数据,father_hash和M_hash上传至联盟链。这些数据在上传至区块链后无法修改和删除,为后续工作时,调查过往的工作情况提供了数据支持,方便后续责任的划分。
需要说明的是,本实施例并不限定待储存文件,首次上传文件的类型,实际应用中,这些文件可以为各种文件,包括但不限于:BIM中的IFC文件,txt文件,exe文件等等。
本发明实施例提供的一种文件储存的方法,获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息,对待存储文件进行哈希处理,确定第一哈希结果,基于文件标识,判断待存储文件是否为首次上传文件,当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件,基于待存储文件和原始文件,确定差异文件,对差异文件进行哈希处理,确认第二哈希结果,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
通过采用了文件之间相互对比的方式,确定待存储文件与原始文件的区别,并根据这些区别生成差异文件,使得最终存储的仅有差异文件和原始文件,无需将大量的相似文件反复上传,极大的提高了存储效率,同时,将修改或上传文件的操作员,上传时间等数据作为上链数据,上传至区块链,确保了在后续工作中,可以查询到工作过程中何时何人对数据进行了修改或上传,方便后续责任的划分。
在本实施例中提供了一种文件储存的方法,可用于电子设备,如电脑、服务器、平板电脑等,图2是对应本发明实施例的流程图,如图2所示,该流程包括如下步骤:
S21,获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息。
详细请参见图1所示实施例的S11,在此不再赘述。
S22,对待存储文件进行哈希处理,确定第一哈希结果。
详细请参见图1所示实施例的S12,在此不再赘述。
S23,基于文件标识,判断待存储文件是否为首次上传文件。
具体的,当待存储文件为首次上传文件时,执行上述S23之后执行如下步骤:
S231,对首次上传文件进行分块处理,获取首次上传文件的分块结果。
具体的,分块方式可以根据不同的应用场景和文件进行确定,例如:通过文件中对应语句之间的引用关系确定,通过文件中语句的不同类型确定,通过文件中语句的行数确定等等。
例如,参阅图3所示,假设存在有首次上传文件,且首次上传文件为BIM的IFC文件,假设该文件中共有8个语句,分别记作:语句1,语句2,语句3,语句4,语句5,语句6,语句7,语句8,其中,语句1引用语句2,语句3引用语句4,语句5引用语句6,语句7引用语句8。其中,存在引用关系的语句可以看作一块,则BIM可以分为四块,分别是,分块1:语句1和语句2,分块2:语句3和语句4,分块3:语句5和语句6,分块4:语句7和语句8。为后续寻找差异数据块做准备。
需要说明的是,上述分块方法仅为示例,实际应用中,在不同场景中,文件分块的方法并不仅限于上述方法,以实际应用为准,此处不在赘述。
S232,将首次上传文件的分块结果存入存储区域。
具体的,预设的存储区域包括但不限于是以下介质:机械硬盘,固态硬盘等等。
例如,假设存在有分块结果origin_part_1,origin_part_2,origin_part_3,origin_part_4,同时,假设存储区域为部署的外部机械硬盘,当分块完成后,将分块结果origin_part_1,origin_part_2,origin_part_3,origin_part_4存储至外部机械硬盘中。通过线下设备保存数据,确保在网络波动的情况下,也能保证数据的完整性和准确性,避免了数据丢失。
S233,对首次上传文件的分块结果进行哈希处理,确定与首次上传文件的每一个分块结果分别对应的哈希结果。
具体的,哈希计算的方式包括但不限于直接定址法、数字分析法、除留余数法等等。
例如,仍以上述分块结果origin_part_1,origin_part_2,origin_part_3,origin_part_4为例,对这四个分块结果进行哈希处理分别获得origin_part_1对应的origin_hash_1,origin_part_2对应的origin_hash_2,origin_part_3对应的origin_hash_3,origin_part_4对应的origin_hash_4。为后续上传区块链做准备,使得无需上传大量的数据,只需要上传一个值即可。
S234,基于智能合约将首次上传文件对应的上链数据和与首次上传文件的每一个分块结果对应的哈希结果上传至区块链。
具体的,由于是首次上传,因此无需进行对比,直接上传即可。
例如,假设首次上传文件对应的上链数据为,操作员用户B,上传时间时刻β,并仍以上述分块哈希结果:origin_hash_1,origin_hash_2,origin_hash_3,origin_hash_4为例,基于智能合约将首次上传文件对应的操作员用户B,上传时间时刻β和与origin_hash_1,origin_hash_2,origin_hash_3,origin_hash_4上传至区块链。利用区块链保存数据。
在另一种情况中,当基于文件标识,确定待存储的文件不为首次上传文件时,该方法还包括如下操作步骤,具体参见如下:
S235,从预设的存储区域中获取原始文件。
S236,基于待存储文件和原始文件,确定差异文件。
具体的,上述S236包括:
S2361,对待存储文件进行分块处理,确定待存储文件分块结果;
具体的,在本步骤中,仅需要将被分块的文件调整为待存储文件,具体文件分块方法详细请参见图3所示实施例的S241,在此不再赘述。
S2362,对待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
具体的,哈希计算的方式包括但不限于直接定址法、数字分析法、除留余数法等等。
例如,待储存文件分块结果为:ofile_part_1,rfile_part_2,rfile_part_3,ofile_part_4,对这四个分块结果进行哈希处理分别获得对应的对饮的哈希结果:ofile_hash_1,rfile_hash_2,rfile_hash_3,ofile_hash_4。为后续寻找差异数据块作准备。
S2363,对原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,原始文件分块结果为事先存储在存储区域中的首次上传文件分块结果;
具体的,哈希计算的方式包括但不限于SHA-1、MD5、除留余数法等等。
例如,假设原始分块结果为ofile_part_1,ofile_part_2,ofile_part_3,ofile_part_4,对这四个分块结果进行哈希处理分别获得对应的对饮的哈希结果:ofile_hash_1,ofile_hash_2,ofile_hash_3,ofile_hash_4。为后续寻找差异数据块作准备。
S2364,根据第三哈希结果和第四哈希结果,确定待存储文件分块结果中与原始文件分块结果中存在差异的差异数据块;
具体的,两组哈希值中,对应位置中哈希值相同的对应的文件块认定为不存在差异的数据块,将哈希值不同的对应的文件块认定为存在差异的数据块。
例如,参阅图4所示,仍以上述两组哈希值为例,其中第三哈希值组为:ofile_hash_1,rfile_hash_2,rfile_hash_3,ofile_hash_4,第四哈希值组为:ofile_hash_1,ofile_hash_2,ofile_hash_3,ofile_hash_4。其中,rfile_hash_2不等于ofile_hash_2,rfile_hash_3不等于ofile_hash_3,因此对应存在差异的数据块为rfile_hash_2和ofile_part_2,rfile_hash_3和ofile_part_3。根据哈希值确定差异数据块,比较的过程仅需要判断数值是否相等,无需对数据块内容进行判断,极大的提高判断效率。
S2365,基于差异数据块,生成差异文件。
具体的,上述S2365包括:
(1)对差异数据块进行语义分析处理,获取语义分析处理结果;
具体的,语义分析的主要目的是用于判断数据块的内容。
例如,仍以上述差异数据块rfile_hash_2和ofile_part_2,rfile_hash_3和ofile_part_3为例,对上述四个数据块进行语义分析,假设语义分析结果为:rfile_hash_2表示存在一个门A和一个门B,ofile_part_2表示存在一个门A,rfile_hash_3表示存在一个窗户A,ofile_part_3表示存在一个窗户A和窗户B。
(2)整合语义分析处理结果,生成差异文件。
具体的,将不同的语义差异整合到一个文件中。
例如,仍以上述差异数据块rfile_hash_2和ofile_part_2,rfile_hash_3和ofile_part_3以及他们对应的语义为例,经过整合,待存储文件于原始文件相比,增加了一个门B和减少了一个窗户A,因此,生成差异文件,并记录:增加一个门B,减少一个窗户A。利用一个文件记录所有差异,节省了存储空间。
S237,对差异文件进行哈希处理,确认第二哈希结果;
详细请参见图1所示实施例的S16,在此不再赘述。
S238,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
具体的,在执行上述步骤S238之前,包括:
S2381,将待存储文件分块结果,第二哈希结果,各个第三哈希结果和各个第四哈希结果存储至存储区域。
具体的,预设的存储区域包括但不限于是以下介质:机械硬盘,固态硬盘等等。
例如,仍引用前述例子中所有的相关数据,将这些数据存储在预先部署机械硬盘中。通过线下设备保存数据,确保在网络波动的情况下,也能保证数据的完整性和准确性,避免了数据丢失。
需要说明的是,步骤231至步骤234所构成的方法步骤是针对待存储文件为首次上传文件时的执行情况。而步骤235到步骤238所执行的步骤则是针对待存储文件并非为首次上传文件时的执行情况,这两种情况属于并列情况,虽然执行步骤的序号又先后,但是执行两种情况分别对应的步骤并没有先后顺序(每一种情况中的步骤按照上文所介绍的前后逻辑执行)。
本发明实施例提供的一种文件储存的方法,获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息,对待存储文件进行哈希处理,确定第一哈希结果,基于文件标识,判断待存储文件是否为首次上传文件,当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件,基于待存储文件和原始文件,确定差异文件,对差异文件进行哈希处理,确认第二哈希结果,基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
通过采用了文件之间相互对比的方式,确定待存储文件与原始文件的区别,并根据这些区别生成差异文件,使得最终存储的仅有差异文件和原始文件,无需将大量的相似文件反复上传,极大的提高了存储效率。
图5为本发明实施例提供的一种文件存储装置,具体参见图5所示,该装置包括:获取模块501、处理模块502、上传模块503。
获取模块501,用于获取待存储文件以及对应的文件标识和上链数据,其中,上链数据用于指示待存储文件的执行信息;
处理模块502,用于对待存储文件进行哈希处理,确定第一哈希结果;基于文件标识,判断待存储文件是否为首次上传文件;当基于文件标识,确定待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件;基于待存储文件和原始文件,确定差异文件;对差异文件进行哈希处理,确认第二哈希结果;
上传模块503,用于基于智能合约将上链数据,第一哈希结果和第二哈希结果上传至区块链。
可选的,处理模块502用于,当基于文件标识,确定待存储的文件为首次上传文件时,对首次上传文件进行分块处理,获取首次上传文件的分块结果;
将首次上传文件的分块结果存入存储区域;
对首次上传文件的分块结果进行哈希处理,确定与首次上传文件的每一个分块结果分别对应的哈希结果;
基于智能合约将首次上传文件对应的上链数据和与首次上传文件的每一个分块结果对应的哈希结果上传至区块链。
可选的,处理模块502用于对待存储文件进行分块处理,确定待存储文件分块结果;
对待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
对原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,原始文件分块结果为事先存储在存储区域中的首次上传文件分块结果;
根据第三哈希结果和第四哈希结果,确定待存储文件分块结果中与原始文件分块结果中存在差异的差异数据块;
基于差异数据块,生成差异文件。
可选的,处理模块502用于,对差异数据块进行语义分析处理,获取语义分析处理结果;
整合语义分析处理结果,生成差异文件。
可选的,处理模块502用于,将待存储文件分块结果,第二哈希结果,各个第三哈希结果和各个第四哈希结果存储至存储区域。
请参阅图6,图6是本发明可选实施例提供的一种电子设备的结构示意图,如图6所示,该电子设备可以包括:至少一个处理器61,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口63,存储器64,至少一个通信总线62。其中,通信总线62用于实现这些组件之间的连接通信。其中,通信接口63可以包括显示屏(Display)、键盘(Keyboard),可选通信接口63还可以包括标准的有线接口、无线接口。存储器64可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器64可选的还可以是至少一个位于远离前述处理器61的存储装置。其中处理器61可以结合图6所描述的装置,存储器64中存储应用程序,且处理器61调用存储器64中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线62可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器64可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器64还可以包括上述种类的存储器的组合。
其中,处理器61可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器61还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器64还用于存储程序指令。处理器61可以调用程序指令,实现如本申请任一实施例中所示的文件存储的方法。
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的文件存储的方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种文件存储的方法,其特征在于,包括:
获取待存储文件以及对应的文件标识和上链数据,其中,所述上链数据用于指示所述待存储文件的执行信息;
对所述待存储文件进行哈希处理,确定第一哈希结果;
基于所述文件标识,判断所述待存储文件是否为首次上传文件;
当基于所述文件标识,确定所述待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件;
基于所述待存储文件和所述原始文件,确定差异文件;
对所述差异文件进行哈希处理,确认第二哈希结果;
基于智能合约将所述上链数据,所述第一哈希结果和所述第二哈希结果上传至区块链。
2.根据权利要求1所述的方法,其特征在于,当基于所述文件标识,确定所述待存储的文件为首次上传文件时,所述方法还包括:
对所述首次上传文件进行分块处理,获取所述首次上传文件的分块结果;
将所述首次上传文件的分块结果存入所述存储区域;
对所述首次上传文件的分块结果进行哈希处理,确定与所述首次上传文件的每一个分块结果分别对应的哈希结果;
基于智能合约将所述首次上传文件对应的上链数据和与所述首次上传文件的每一个分块结果对应的哈希结果上传至所述区块链。
3.根据权利要求1所述的方法,其特征在于,所述基于所述待存储文件和所述原始文件,确定差异文件,包括:
对所述待存储文件进行分块处理,确定所述待存储文件分块结果;
对所述待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
对所述原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,所述原始文件分块结果为事先存储在所述存储区域中的所述首次上传文件分块结果;
根据所述第三哈希结果和所述第四哈希结果,确定所述待存储文件分块结果中与所述原始文件分块结果中存在差异的差异数据块;
基于所述差异数据块,生成所述差异文件。
4.根据权利要求3所述的方法,其特征在于,所述基于所述差异数据块,生成所述差异文件,包括:
对所述差异数据块进行语义分析处理,获取语义分析处理结果;
整合所述语义分析处理结果,生成所述差异文件。
5.根据权利要求3或4中任意一条所述的方法,其特征在于,还包括:
将所述待存储文件分块结果,所述第二哈希结果,所述各个第三哈希结果和所述各个第四哈希结果存储至所述存储区域。
6.一种文件储存的装置,其特征在于,所述装置包括:
获取模块,用于获取待存储文件以及对应的文件标识和上链数据,其中,所述上链数据用于指示所述待存储文件的执行信息;
处理模块,用于对所述待存储文件进行哈希处理,确定第一哈希结果;基于所述文件标识,判断所述待存储文件是否为首次上传文件;当基于所述文件标识,确定所述待存储的文件不为首次上传文件时,从预设的存储区域中获取原始文件;基于所述待存储文件和所述原始文件,确定差异文件;对所述差异文件进行哈希处理,确认第二哈希结果;
上传模块,用于基于智能合约将所述上链数据,所述第一哈希结果和所述第二哈希结果上传至区块链。
7.根据权利要求6所述的设备,其特征在于,所述处理模块还用于,当基于所述文件标识,确定所述待存储的文件为首次上传文件时,对所述首次上传文件进行分块处理,获取所述首次上传文件的分块结果;
将所述首次上传文件的分块结果存入所述存储区域;对所述首次上传文件的分块结果进行哈希处理,确定与所述首次上传文件的每一个分块结果分别对应的哈希结果;
所述上传模块,还用于基于智能合约将所述首次上传文件对应的上链数据和与所述首次上传文件的每一个分块结果对应的哈希结果上传至所述区块链。
8.根据权利要求6所述的设备,其特征在于,所述处理模块,用于:
对所述待存储文件进行分块处理,确定所述待存储文件分块结果;
对所述待存储文件分块结果中包含的各个数据块进行哈希处理,确定各个第三哈希结果;
对所述原始文件分块结果中包含的各个数据块进行哈希处理,确定各个第四哈希结果,其中,所述原始文件分块结果为事先存储在所述存储区域中的所述首次上传文件分块结果;
根据所述第三哈希结果和所述第四哈希结果,确定所述待存储文件分块结果中与所述原始文件分块结果中存在差异的差异数据块;
基于所述差异数据块,生成所述差异文件。
9.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器执行如权利要求1-5任一所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200624.2A CN114564446B (zh) | 2022-03-01 | 2022-03-01 | 一种文件存储的方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210200624.2A CN114564446B (zh) | 2022-03-01 | 2022-03-01 | 一种文件存储的方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564446A true CN114564446A (zh) | 2022-05-31 |
CN114564446B CN114564446B (zh) | 2022-12-27 |
Family
ID=81714961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210200624.2A Active CN114564446B (zh) | 2022-03-01 | 2022-03-01 | 一种文件存储的方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564446B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357548A (zh) * | 2022-10-20 | 2022-11-18 | 中国信息通信研究院 | 基于区块链的电子合同查询方法、装置、设备和介质 |
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及系统 |
CN116662453A (zh) * | 2023-08-01 | 2023-08-29 | 天津理工大学 | 基于区块链的数字资产存储方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN104035800A (zh) * | 2014-06-19 | 2014-09-10 | 广州金山网络科技有限公司 | 一种增量包生成方法、版本升级方法、装置以及系统 |
CN109104450A (zh) * | 2017-06-21 | 2018-12-28 | 腾讯科技(北京)有限公司 | 文件发送、接收方法及其装置、计算机可读存储介质 |
CN110825748A (zh) * | 2019-11-05 | 2020-02-21 | 北京平凯星辰科技发展有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111382414A (zh) * | 2020-02-14 | 2020-07-07 | 深圳壹账通智能科技有限公司 | 基于区块链的信息处理方法及平台、电子设备 |
CN111475538A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 一种数据处理方法、装置及存储介质 |
US10810161B1 (en) * | 2012-09-27 | 2020-10-20 | EMC IP Holding Company LLC | System and method for determining physical storage space of a deduplicated storage system |
CN112767110A (zh) * | 2021-01-20 | 2021-05-07 | 中国工商银行股份有限公司 | 大数据分散上链方法及系统 |
CN112990335A (zh) * | 2021-03-31 | 2021-06-18 | 江苏方天电力技术有限公司 | 一种电网无人机巡检影像缺陷智能识别自学习训练方法、系统 |
CN113630445A (zh) * | 2021-07-19 | 2021-11-09 | 山东区块链研究院 | 一种基于区块链网络的数据存储方法及装置 |
US20210397350A1 (en) * | 2019-06-17 | 2021-12-23 | Huawei Technologies Co., Ltd. | Data Processing Method and Apparatus, and Computer-Readable Storage Medium |
CN113886332A (zh) * | 2021-12-09 | 2022-01-04 | 广东睿江云计算股份有限公司 | 一种大文件差异对比方法、装置、计算机设备及存储介质 |
CN113901005A (zh) * | 2021-09-01 | 2022-01-07 | 微易签(杭州)科技有限公司 | 一种基于区块链便携式文件存储的方法、系统和介质 |
CN114035744A (zh) * | 2021-10-19 | 2022-02-11 | 深圳前海微众银行股份有限公司 | 一种信息存储方法及终端、设备、存储介质 |
-
2022
- 2022-03-01 CN CN202210200624.2A patent/CN114564446B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10810161B1 (en) * | 2012-09-27 | 2020-10-20 | EMC IP Holding Company LLC | System and method for determining physical storage space of a deduplicated storage system |
CN103246730A (zh) * | 2013-05-08 | 2013-08-14 | 网易(杭州)网络有限公司 | 文件存储方法和设备、文件发送方法和设备 |
CN104035800A (zh) * | 2014-06-19 | 2014-09-10 | 广州金山网络科技有限公司 | 一种增量包生成方法、版本升级方法、装置以及系统 |
CN109104450A (zh) * | 2017-06-21 | 2018-12-28 | 腾讯科技(北京)有限公司 | 文件发送、接收方法及其装置、计算机可读存储介质 |
CN111475538A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 一种数据处理方法、装置及存储介质 |
US20210397350A1 (en) * | 2019-06-17 | 2021-12-23 | Huawei Technologies Co., Ltd. | Data Processing Method and Apparatus, and Computer-Readable Storage Medium |
CN110825748A (zh) * | 2019-11-05 | 2020-02-21 | 北京平凯星辰科技发展有限公司 | 利用差异化索引机制的高性能和易扩展的键值存储方法 |
CN111382414A (zh) * | 2020-02-14 | 2020-07-07 | 深圳壹账通智能科技有限公司 | 基于区块链的信息处理方法及平台、电子设备 |
CN112767110A (zh) * | 2021-01-20 | 2021-05-07 | 中国工商银行股份有限公司 | 大数据分散上链方法及系统 |
CN112990335A (zh) * | 2021-03-31 | 2021-06-18 | 江苏方天电力技术有限公司 | 一种电网无人机巡检影像缺陷智能识别自学习训练方法、系统 |
CN113630445A (zh) * | 2021-07-19 | 2021-11-09 | 山东区块链研究院 | 一种基于区块链网络的数据存储方法及装置 |
CN113901005A (zh) * | 2021-09-01 | 2022-01-07 | 微易签(杭州)科技有限公司 | 一种基于区块链便携式文件存储的方法、系统和介质 |
CN114035744A (zh) * | 2021-10-19 | 2022-02-11 | 深圳前海微众银行股份有限公司 | 一种信息存储方法及终端、设备、存储介质 |
CN113886332A (zh) * | 2021-12-09 | 2022-01-04 | 广东睿江云计算股份有限公司 | 一种大文件差异对比方法、装置、计算机设备及存储介质 |
Non-Patent Citations (7)
Title |
---|
YUFEI ZHAO 等: "A Multidirectional-Difference-Hash-Based Image Clutter Metric for Targeting Performance", 《IEEE PHOTONICS JOURNAL》 * |
张越美 等: "基于知识库的IFC模型存储技术研究", 《土木建筑工程信息技术》 * |
武蓉: "Spark分区数据放置方法研究与优化", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
焦玉华: "音频感知哈希算法研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
王明: "面向小文件的分布式文件存储管理系统的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
翟社平 等: "区块链关键技术中的数据一致性研究", 《计算机技术与发展》 * |
陈志文: "多核系统并发哈希表研究", 《中国优秀博硕士学位论文全文数据库(博士)信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357548A (zh) * | 2022-10-20 | 2022-11-18 | 中国信息通信研究院 | 基于区块链的电子合同查询方法、装置、设备和介质 |
CN115357548B (zh) * | 2022-10-20 | 2023-03-03 | 中国信息通信研究院 | 基于区块链的电子合同查询方法、装置、设备和介质 |
CN116010362A (zh) * | 2023-03-29 | 2023-04-25 | 世优(北京)科技有限公司 | 文件存储和文件读取的方法、装置及系统 |
CN116662453A (zh) * | 2023-08-01 | 2023-08-29 | 天津理工大学 | 基于区块链的数字资产存储方法 |
CN116662453B (zh) * | 2023-08-01 | 2023-11-03 | 天津理工大学 | 基于区块链的数字资产存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114564446B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114564446B (zh) | 一种文件存储的方法、装置、系统及存储介质 | |
CN110209652B (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
CN108108127B (zh) | 一种文件读取方法及系统 | |
CN107832062B (zh) | 一种程序更新方法及终端设备 | |
EP3917115A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
US10664445B2 (en) | Bloom filter generation method and apparatus | |
CN109241003B (zh) | 文件管理方法和装置 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
US20230008406A1 (en) | File Storage Method and Apparatus, and Device and Readable Storage Medium | |
CN110908920A (zh) | 一种接口功能测试方法、装置及相关组件 | |
WO2019148657A1 (zh) | 关联环境测试方法、电子装置及计算机可读存储介质 | |
CN112486915A (zh) | 数据存储方法及装置 | |
CA2734207C (en) | Electronic file comparator | |
CN114020522A (zh) | 数据备份方法、装置、电子设备及系统 | |
CN109976828B (zh) | 一种配置文件的方法及装置 | |
CN111367869A (zh) | 镜像文件处理方法、装置、存储介质及电子设备 | |
CN114513498B (zh) | 文件传输校验方法、装置、计算机设备和存储介质 | |
CN113687920B (zh) | 一种分布式系统的对象策略操作方法、装置及设备 | |
CN112559547B (zh) | 确定多存储对象副本之间一致性的方法及装置 | |
CN114328080A (zh) | 一种固件状态检测的方法及装置、电子设备 | |
CN110059071B (zh) | 基于存储过程的数据对比监控方法、系统、设备及介质 | |
CN112199529A (zh) | 图片处理方法、装置、电子设备及存储介质 | |
CN113535470A (zh) | 组态备份方法、装置、电子设备和存储介质 | |
CN111464395A (zh) | 一种创建区块链的方法、装置及可读存储介质 | |
CN110688387A (zh) | 一种数据处理方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |