CN111209254A - 文件指纹获取方法、装置、电子设备以及存储介质 - Google Patents
文件指纹获取方法、装置、电子设备以及存储介质 Download PDFInfo
- Publication number
- CN111209254A CN111209254A CN202010028353.8A CN202010028353A CN111209254A CN 111209254 A CN111209254 A CN 111209254A CN 202010028353 A CN202010028353 A CN 202010028353A CN 111209254 A CN111209254 A CN 111209254A
- Authority
- CN
- China
- Prior art keywords
- file
- processed
- subfiles
- hash value
- subfile
- 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
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/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种文件指纹获取方法、装置、电子设备以及存储介质,涉及电子设备技术领域。所述方法包括:获取待处理文件,获取待处理文件的特征属性,并计算特征属性对应的哈希值作为第一哈希值,对待处理文件进行分片处理,获得第一数量的子文件,从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值,其中,第二数量小于第一数量,对第一哈希值和第二哈希值进行增量计算,获得第三哈希值作为待处理文件的文件指纹。本申请实施例通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。
Description
技术领域
本申请涉及电子设备技术领域,更具体地,涉及一种文件指纹获取方法、装置、电子设备以及存储介质。
背景技术
随着科学技术的发展,电子设备的使用越来越广泛,功能越来越多,已经成为人们日常生活中的必备之一。目前,电子设备可以用于将文件上传至服务器,其中,在文件上传的场景中,电子设备可以计算文件的文件指纹,以用于在服务器进行文件的验证,但是,目前在文件指纹的计算上会耗费较长的时间,造成等待时间较长,用户体验不佳。
发明内容
鉴于上述问题,本申请提出了一种文件指纹获取方法、装置、电子设备以及存储介质,以解决上述问题。
第一方面,本申请实施例提供了一种文件指纹获取方法,所述方法包括:获取待处理文件;获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值;对所述待处理文件进行分片处理,获得第一数量的子文件;从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量;对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
第二方面,本申请实施例提供了一种文件指纹获取装置,所述装置包括:待处理文件获取模块,用于获取待处理文件;第一哈希值获取模块,用于获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值;子文件获取模块,用于对所述待处理文件进行分片处理,获得第一数量的子文件;第二哈希值获取模块,用于从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量;文件指纹获取模块,用于对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
第三方面,本申请实施例提供了一种电子设备,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行上述方法。
第四方面,本申请实施例提供了一种计算机可读取存储介质,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述方法。
本申请实施例提供的文件指纹获取方法、装置、电子设备以及存储介质,获取待处理文件,获取待处理文件的特征属性,并计算特征属性对应的哈希值作为第一哈希值,对待处理文件进行分片处理,获得第一数量的子文件,从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值,其中,第二数量小于第一数量,对第一哈希值和第二哈希值进行增量计算,获得第三哈希值作为待处理文件的文件指纹,从而通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可用于本申请实施例提供的文件指纹获取方法的应用环境示意图;
图2示出了本申请一个实施例提供的文件指纹获取方法的流程示意图;
图3示出了本申请又一个实施例提供的文件指纹获取方法的流程示意图;
图4示出了本申请的图3所示的文件指纹获取方法的步骤S206的流程示意图;
图5示出了本申请的图3所示的文件指纹获取方法的步骤S210的流程示意图;
图6示出了本申请实施例提供的文件指纹获取装置的模块框图;
图7示出了本申请实施例用于执行根据本申请实施例的文件指纹获取方法的电子设备的框图;
图8示出了本申请实施例的用于保存或者携带实现根据本申请实施例的文件指纹获取方法的程序代码的存储单元。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
在文件上传的场景中,通常采用浏览器读取文件的全部内容再计算出响应的文件哈希值的方式。当上传的文件较大时,可以将文件按指定大小分成多个片段,依次读取每个文件片段,读取文件片段的同时使用增量计算的方式来计算整个文件的哈希值,其中,增量计算使浏览器可以以较小的内存开销计算出较大的文件的哈希值,避免了因文件过大而导致页面卡顿或崩溃。发明人在研究中发现,当选取的文件较大时,浏览器如果读取文件的全部内容再计算文件指纹,该过程会因为文件体积过大导致内存占用过多而使页面发生卡顿甚至崩溃;浏览器如果使用增量方式计算时,因为文件较大会导致分片数量较多,计算整个过程将耗费较长的时间,例如一个大小超过10G的文件,在上传服务器钱的计算等待用时长达数分钟,计算用时过长既降低了生产效率,又破坏了用户使用体验。
针对上述问题,发明人经过长期的研究发现,并提出了本申请实施例提供的文件指纹获取方法、装置、电子设备以及存储介质,通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。其中,具体的文件指纹获取方法在后续的实施例中进行详细的说明。
下面将针对可用于本申请实施例提供的文件指纹获取方法的应用环境进行描述。
请参阅图1,图1示出了本申请实施提供的文件指纹获取方法的应用场景的示意图。其包括电子设备100和服务器200,其中,电子设备100和服务器200通信连接,以实现电子设备100和服务器200的数据交互,例如,电子设备100可以发送请求信息至服务器200,可以上传文件至服务器200,也可以从服务器200接收查询信息等,在此不做限定。作为一种方式,电子设备100和服务器200可以分别与基站连接,以通过基站实现电子设备100和服务器200之间的数据交互。其中,电子设备100可以包括智能手机、平板电脑、穿戴式电子设备等可以安装客户端(浏览器客户端)的电子设备。服务器200可以包括传统服务器、云服务器等,在此不做限定。
请参阅图2,图2示出了本申请一个实施例提供的文件指纹获取方法的流程示意图。所述文件指纹获取方法用于通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。在具体的实施例中,所述文件指纹获取方法应用于如图6所示的文件指纹获取装置300以及配置有文件指纹获取装置300的电子设备100(图7)。下面将以电子设备为例,说明本实施例的具体流程,当然,可以理解的,本实施例所应用的电子设备可以包括台式电脑、平板电脑、穿戴式电子设备等,在此不做限定。下面将针对图2所示的流程进行详细的阐述,所述文件指纹获取方法具体可以包括以下步骤:
步骤S101:获取待处理文件。
在本实施例中,电子设备在通过浏览器浏览文件的过程中,可以获取待处理文件。其中,待处理文件为表征待上传至服务器的文件,待处理文件可以包括电子设备通过浏览器浏览的所有文件,或者包括电子设备通过浏览器浏览的部分文件。
在一些实施方式中,电子设备可以自动获取待处理文件。当电子设备自动获取待处理文件时,电子设备可以基于浏览器的浏览记录自动获取待处理文件,可以基于预先设置的获取规则自动获取待处理文件等。其中,当电子设备基于浏览器的浏览记录自动获取待处理文件时,可以获取所浏览的所有文件中的每个文件的浏览次数,将浏览次数大于指定次数的文件确定为待处理文件;可以获取所浏览的所有文件中的每个文件的浏览时长,将浏览时长大于指定时长的文件确定为待处理文件;可以获取所浏览的所有文件中的每个文件的标记信息,其中,标记信息可以是用户在浏览过程中所添加的,将包括标记信息的文件确定为待处理文件等,在此不做限定。其中,当电子设备基于预先设置的获取规则自动获取待处理文件时,可以获取所浏览的所有文件,并将所浏览的所有文件均确定为待处理文件;可以获取所浏览的所有文件中的每个文件的浏览时间,并将浏览时间在指定时间段内的文件确定为待处理文件等,在此不做限定。
在一些实施方式中,电子设备可以获取用户通过上传组件选取的文件作为待处理文件。当电子设备获取用户通过上传组件选取的文件作为待处理文件时,电子设备可以输出通过浏览器所浏览的所有文件,并获取用户通过上传组件从所浏览的所有文件中选取的文件作为待处理文件;电子设备可以输出浏览器内的所有文件,并获取用户通过上传组件从浏览器内的所有文件中选取的文件作为待处理文件等,在此不做限定。
步骤S102:获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值。
在本实施例中,电子设备在获取待处理文件后,可以获取待处理文件的特征属性并计算该特征属性对应的哈希值,将计算获得的特征属性对应的哈希值作为第一哈希值,其中,待处理文件的特征属性可以用于标识待处理文件,以区分待处理文件和其他文件。在一些实施方式中,待处理文件的特征属性可以包括最后修改时间、文件大小以及文件类型中的一种或几种的组合,可以理解的,最后修改时间、文件大小以及文件类型均可以用于标识待处理文件,以区分待处理文件和其他文件。
在一些实施方式中,电子设备可以获取待处理文件的最后修改时间、文件大小以及文件类型中的一种或几种的组合,并计算待处理文件的最后修改时间、文件大小以及文件类型中的一种或几种的组合对应的哈希值作为第一哈希值。例如,电子设备可以获取待处理文件的最后修改时间,并计算最后修改时间对应的哈希值作为第一哈希值,电子设备可以获取待处理文件的最后修改时间和文件大小,并计算最后修改时间和文件大小对应的哈希值作为第一哈希值等,在此不做限定。
在一些实施方式中,电子设备可以通过JavaScript读取待处理文件的文件信息,基于文件信息确定待处理文件的特征属性,以通过在浏览器端使用JavaScript快速获取待处理文件的特征属性以及快速计算出待处理文件的特征属性的哈希值。例如,电子设备可以通过JavaScript读取待处理文件的文件信息,并基于文件信息确定待处理文件的最后修改时间、文件大小、文件类型等特征属性。
在一些实施方式中,电子设备可以通过SHA-x或者MD5等加密算法计算待处理文件的特征属性对应的哈希值作为第一哈希值。
在一些实施方式中,电子设备可以构造一个64位(甚至更长)的编码,前32位(如果采用MD5加密)表示待处理文件的特征属性,后面的位数的编码对应选取的文件分片内容,即对应目标子文件的内容。
步骤S103:对所述待处理文件进行分片处理,获得第一数量的子文件。
在本实施例中,电子设备可以对待处理文件进行分片处理,获得第一数量的子文件,第一数量的具体数值在此不做限定。
在一些实施方式中,在对待处理文件进行分片处理时,电子设备可以使用浏览器File类的slice方法将待处理文件以业务需求确定的分片大小进行分片处理,获得第一数量的子文件。
在一些实施方式中,在对待处理文件进行分片处理时,电子设备可以基于待处理文件的文件大小进行分片处理,获得第一数量的子文件。具体地,电子设备可以获取待处理文件的文件大小,并基于待处理文件的文件大小确定分片大小,从而确定对待处理文件进行分片处理所获得的子文件的数量。其中,在待处理文件的文件大小较大时,则电子设备基于待处理文件的文件大小所确定的分片大小可以较大,在待处理文件的文件大小较小时,则电子设备基于待处理文件的文件大小所确定的分片大小可以较小,在一些实施方式中,若待处理文件的文件大小为A1,则可以将待处理文件的分片大小确定为B1,若待处理文件的文件大小为A2,则可以将待处理文件的分片大小确定为B2,其中,A1>A2,B1>B2。例如,若待处理文件的文件大小为500M,则可以将待处理文件的分片大小确定为50M,若待处理文件的文件大小为200M,则可以将待处理文件的分片大小确定为20M。
在一些实施方式中,在对待处理文件进行分片处理时,电子设备可以基于子文件的完整性对待处理文件进行分片处理,获得第一数量的子文件。例如,假设待处理文件包括10个完整的子文件,且10个完整的子文件的大小均适配,则可以将待处理文件按照子文件的完整性,将待处理文件进行分片处理,获得10个完整的子文件。
在一些实施方式中,在对待处理文件进行分片处理时,可以将待处理文件进行均匀分片,获得第一数量的子文件。例如,假设待处理文件的大小为500M,则可以将待处理文件均匀分片为50M,从而可以获得10个50M的子文件。
在一些实施方式中,在对待处理文件进行分片处理时,可以将待处理文件进行不均匀分片,获得第一数量的子文件。例如,假设待处理文件的大小为500M,则可以将待处理文件不均匀分片为50M、50M、50M、100M、100M、150M,从而可以获得6个子文件。
步骤S104:从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量。
在本实施例中,电子设备在获得第一数量的子文件后,可以从第一数量的子文件中进行目标子文件的选取,例如,可以从第一数量的子文件中选取小于第一数量的第二数量的子文件作为目标子文件,并计算该目标子文件对应的哈希值,将计算获得的哈希值作为第二哈希值。其中,电子设备可以通过FileReader对象从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值。
在本实施例中,电子设备可以根据其剩余内存确定从第一数量的子文件中选取作为目标子文件的子文件的数量。其中,若电子设备的剩余内存较多时,可以从第一数量的子文件中选取较多的子文件作为目标子文件,即第二数量越大,若电子设备的剩余内存较少时,可以从第一数量的子文件中选取较少的子文件作为目标子文件,即第二数量越小。
在一些实施方式中,电子设备可以从第一数量的子文件中选取一个子文件作为目标子文件。其中,电子设备可以从第一数量的子文件中选取第一个子文件作为目标子文件,从第一数量的子文件中选取最后一个子文件作为目标子文件等,在此不做限定。
在一些实施方式中,电子设备可以从第一数量的子文件中选取两个子文件作为目标子文件。其中,电子设备可以从第一数量的子文件中选取第一个子文件和最后一个子文件作为目标子文件,从第一数量的子文件中选取第一个子文件和第二个子文件作为目标子文件,从第一数量的子文件中选取最后一个子文件和倒数第二个子文件作为目标子文件等,在此不做限定。
在一些实施方式中,电子设备可以从第一数量的子文件中选取三个子文件作为目标子文件。其中,电子设备可以从第一数量的子文件中选取第一个子文件、最后一个子文件以及第一个子文件和最后一个子文件之间的一个子文件作为目标子文件,从第一数量的子文件中选取第一个子文件、第二个字文件以及第三个子文件作为目标子文件,从第一数量的子文件中选取最后一个子文件、倒数第二个子文件以及倒数第三个子文件作为目标子文件等,在此不做限定。
在一些实施方式中,电子设备可以通过SHA-x或者MD5等加密算法计算目标子文件对应的哈希值作为第二哈希值。
步骤S105:对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
在一些实施方式中,电子设备在获得待处理文件的特征属性对应的第一哈希值和目标子文件对应的第二哈希值后,可以对第一哈希值和第二哈希值通过增量计算,获得第三哈希值,将计算获得的第三哈希值作为待处理文件的文件指纹,以通过一个较短的信息来唯一标识待处理文件。
本申请一个实施例提供的文件指纹获取方法,获取待处理文件,获取待处理文件的特征属性,并计算特征属性对应的哈希值作为第一哈希值,对待处理文件进行分片处理,获得第一数量的子文件,从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值,其中,第二数量小于第一数量,对第一哈希值和第二哈希值进行增量计算,获得第三哈希值作为待处理文件的文件指纹,从而通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。
请参阅图3,图3示出了本申请又一个实施例提供的文件指纹获取方法的流程示意图。该方法应用于上述电子设备,下面将针对图3所示的流程进行详细的阐述,所述文件指纹获取方法具体可以包括以下步骤:
步骤S201:获取待处理文件。
步骤S202:通过JavaScript读取所述待处理文件的文件信息。
步骤S203:基于所述文件信息确定所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值。
其中,步骤S201-步骤S203的具体描述请参阅步骤S101-步骤S102,在此不再赘述。
步骤S204:获取所述待处理文件的文件大小。
在一些实施方式中,电子设备可以获取待处理文件的文件大小。其中,电子设备可以通过JavaScript读取待处理文件的文件信息,并基于待处理文件的文件信息获取待处理文件的文件大小。
步骤S205:当所述文件大小大于指定大小时,对所述待处理文件进行分片处理,获得所述第一数量的子文件。
在一些实施方式中,电子设备预先设置并存储有指定大小,该指定大小用于作为待处理文件的文件大小的判断依据。因此,在本实施例中,在获取待处理文件的文件大小后,可以将待处理文件的文件大小和指定大小进行比较,以判断待处理文件的文件大小是否大于指定大小。
其中,当判断结果表征待处理文件的文件大小大于指定大小时,表征待处理文件较大,如果读取待处理文件的全部内容再计算待处理文件的文件指纹,会因为待处理文件较大导致内存占用过多而使页面发生卡顿甚至崩溃,因此,可以对待处理文件进行分片处理,获得第一数量的子文件,以避免页面发生卡顿设置崩溃的问题发生。其中,当判断结果表征待处理文件的文件大小不大于指定大小时,表征待处理文件较小,如果读取待处理文件的全部内容再计算待处理文件的文件指纹,也不会因为待处理文件较大导致内存占用过多而使页面发生卡顿甚至崩溃,因此,可以不对待处理文件进行分片处理。
步骤S206:从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量。
其中,步骤S206的具体描述请参阅步骤S104,在此不再赘述。
请参阅图4,图4示出了本申请的图3所示的文件指纹获取方法的步骤S206的流程示意图。下面将针对图4所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S2061:选取排列在所述第一数量的子文件中的第一个子文件作为所述目标子文件。
在一些实施方式中,当电子设备从第一数量的子文件中选取一个子文件作为目标子文件时,可以选取排列在第一数量的子文件中的第一个子文件作为目标子文件。例如,第一数量的子文件按排列依次包括第一子文件、第二子文件、第三子文件以及第四子文件,则可以选取第一子文件作为目标子文件。
步骤S2062:选取排列在所述第一数量的子文件中的第一个子文件和最后一个子文件作为所述目标子文件。
在一些实施方式中,当电子设备从第一数量的子文件中选取两个子文件作为目标子文件时,可以选取排列在第一数量的子文件中的第一个子文件和最后一个子文件作为目标子文件。例如,第一数量的子文件按排列依次包括第一子文件、第二子文件、第三子文件以及第四子文件,则可以选取第一子文件和第四子文件作为目标子文件。
步骤S2063:选取排列在所述第一数量的子文件中的第一个子文件、最后一个子文件以及所述第一个子文件和所述最后一个子文件之间的任一个子文件作为所述目标子文件。
在一些实施方式中,当电子设备从第一数量的子文件中选取三个子文件作为目标子文件时,可以选取排列在第一数量的子文件中的第一个子文件、最后一个子文件以及第一个子文件和最后一个子文件中的任一个子文件作为目标子文件。例如,第一数量的子文件按排列依次包括第一子文件、第二子文件、第三子文件以及第四子文件,则可以选取第一子文件、第二子文件以及第四子文件作为目标子文件,或者,可以选取第一子文件、第三子文件以及第四子文件作为目标子文件。
步骤S207:对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
其中,步骤S207的具体描述请参阅步骤S105,在此不再赘述。
步骤S208:向服务器发送携带所述文件指纹的请求信息,所述请求信息用于请求所述服务器基于所述文件指纹查询所述待处理文件的上传信息。
在本实施例中,电子设备在获取待处理文件的文件指纹后,可以向服务器发送携带该文件指纹的请求信息,以请求服务器基于该文件指纹查询待处理文件的上传信息。其中,电子设备可以通过无线网络向服务器发送携带文件指纹的请求信息,可以通过数据网络向服务器发送携带文件指纹的请求信息等,在此不做限定。在一些实施方式中,服务器接收到请求信息后,可以响应该请求信息查询确认文件指纹对应的待处理文件是否完全上传,即查询确认文件指纹对应的待处理文件已全部上传、已部分上传,还是完全没有上传。
步骤S209:接收所述服务器反馈的针对所述待处理文件的上传信息的查询结果。
在一些实施方式中,服务器在基于文件指纹对待处理文件的上传信息进行查询,并得到查询结果后,可以将查询结果反馈给电子设备。相应地,电子设备可以接收服务器反馈的针对待处理文件的上传信息的查询结果。作为一种方式,该查询结果可以包括已全部上传、已部分上传或者完全没有上传。作为另一种方式,若服务器查询到文件指纹对应的待处理文件已全部上传,则可以不反馈查询结果给电子设备,则该查询结果可以包括已部分上传或者完全没有上传。具体方式在此不做限定。
步骤S210:基于所述查询结果对所述待处理文件进行处理。
在一些实施方式中,电子设备在接收到查询结果后,可以基于该查询结果对待处理文件进行处理。
请参阅图5,图5示出了本申请的图3所示的文件指纹获取方法的步骤S210的流程示意图。下面将针对图5所示的流程进行详细的阐述,所述方法具体可以包括以下步骤:
步骤S211:当所述查询结果表征没有上传所述待处理文件时,将所述待处理文件上传至所述服务器。
在一些实施方式中,当查询结果表征电子设备没有上传待处理文件,即当查询结果表征待处理文件完全没有上传时,则电子设备可以将待处理文件上传至服务器。
步骤S212:当所述查询结果表征已上传所述待处理文件中的部分子文件时,将所述待处理文件中除所述部分子文件以外的其他部分子文件上传至所述服务器。
在一些实施方式中,当查询结果表征电子设备已上传待处理文件中的部分子文件时,则电子设备可以将待处理文件中除部分子文件以外的其他部分子文件上传至服务器,而无需将待处理文件全部重新上传至服务器,以实现待处理文件的续传和秒传。例如,假设待处理文件包括第一子文件、第二子文件、第三子文件以及第四子文件,且查询结果表征第一子文件和第二子文件已上传至服务器,则电子设备可以将第三子文件和第四子文件上传至服务器。
本申请又一个实施例提供的文件指纹获取方法,获取待处理文件,通过JavaScript读取待处理文件的文件信息,基于文件信息确定待处理文件的特征属性,并计算特征属性对应的哈希值作为第一哈希值,获取待处理文件的文件大小,当文件大小大于指定大小时,对待处理文件进行分片处理,获得第一数量的子文件,从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值,其中,第二数量小于第一数量,对第一哈希值和第二哈希值进行增量计算,获得第三哈希值作为待处理文件的文件指纹。向服务器发送携带文件指纹的请求信息,用于请求服务器基于文件指纹查询待处理文件的上传信息,接收服务器反馈的针对待处理文件的上传信息的查询结果,基于查询结果对待处理文件进行处理。相较于图2所示的文件指纹获取方法,本实施例还使用JavaScript快速获取待处理文件的特征属性,提升特征属性的获取速度,以及在待处理文件的文件大小大于指定大小时,对待处理文件进行分片处理,以提升分片的合理性。另外,本实施例还将文件指纹上传至服务器进行待处理文件的上传信息的查询,并基于服务器反馈的查询结果对待处理文件进行处理,以提升文件上传验证的效率,缩短等待时间,提升用户体验。
请参阅图6,图6示出了本申请实施例提供的文件指纹获取装置300的模块框图。该文件指纹获取装置300应用于上述电子设备,下面将针对图6所示的框图进行阐述,所述文件指纹获取装置300包括:待处理文件获取模块310、第一哈希值获取模块320、子文件获取模块330、第二哈希值获取模块340以及文件指纹获取模块350,其中:
待处理文件获取模块310,用于获取待处理文件。
第一哈希值获取模块320,用于获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值。
进一步地,所述第一哈希值获取模块320包括:文件信息读取子模块和特征信息确定子模块,其中:
文件信息读取子模块,用于通过JavaScript读取所述待处理文件的文件信息。
特征信息确定子模块,用于基于所述文件信息确定所述待处理文件的特征属性。
子文件获取模块330,用于对所述待处理文件进行分片处理,获得第一数量的子文件。
进一步地,所述子文件获取模块330包括:文件大小获取子模块和子文件获取子模块,其中:
文件大小获取子模块,用于获取所述待处理文件的文件大小。
子文件获取子模块,用于当所述文件大小大于指定大小时,对所述待处理文件进行分片处理,获得所述第一数量的子文件。
第二哈希值获取模块340,用于从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量。
进一步地,所述第二哈希值获取模块340包括:第一目标子文件获取模块、第二目标子文件获取模块以及第三目标子文件获取模块,其中:
第一目标子文件获取模块,用于选取排列在所述第一数量的子文件中的第一个子文件作为所述目标子文件。
第二目标子文件获取模块,用于选取排列在所述第一数量的子文件中的第一个子文件和最后一个子文件作为所述目标子文件。
第三目标子文件获取模块,用于选取排列在所述第一数量的子文件中的第一个子文件、最后一个子文件以及所述第一个子文件和所述最后一个子文件之间的任一个子文件作为所述目标子文件。
文件指纹获取模块350,用于对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
进一步地,所述文件指纹获取装置300还包括:请求信息发送模块、查询结果接收模块以及待处理文件处理模块,其中:
请求信息发送模块,用于向服务器发送携带所述文件指纹的请求信息,所述请求信息用于请求所述服务器基于所述文件指纹查询所述待处理文件的上传信息。
查询结果接收模块,用于接收所述服务器反馈的针对所述待处理文件的上传信息的查询结果。
待处理文件处理模块,用于基于所述查询结果对所述待处理文件进行处理。
进一步地,所述待处理文件处理模块包括:第一上传子模块和第二上传子模块,其中:
第一上传子模块,用于当所述查询结果表征没有上传所述待处理文件时,将所述待处理文件上传至所述服务器。
第二上传子模块,用于当所述查询结果表征已上传所述待处理文件中的部分子文件时,将所述待处理文件中除所述部分子文件以外的其他部分子文件上传至所述服务器。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
请参阅图7,其示出了本申请实施例提供的一种电子设备100的结构框图。该电子设备100可以是智能手机、平板电脑、电子书等能够运行应用程序的电子设备。本申请中的电子设备100可以包括一个或多个如下部件:处理器110、存储器120、触摸屏130以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器120中并被配置为由一个或多个处理器110执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
其中,处理器110可以包括一个或者多个处理核。处理器110利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器120内的指令、程序、代码集或指令集,以及调用存储在存储器120内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器110可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(ProgrammableLogic Array,PLA)中的至少一种硬件形式来实现。处理器110可集成中央处理器(CentralProcessing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责待显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器110中,单独通过一块通信芯片进行实现。
存储器120可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器120可用于存储指令、程序、代码、代码集或指令集。存储器120可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
请参阅图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质400中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质400可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质400包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质400具有执行上述方法中的任何方法步骤的程序代码410的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码410可以例如以适当形式进行压缩。
综上所述,本申请实施例提供的文件指纹获取方法、装置、电子设备以及存储介质,获取待处理文件,获取待处理文件的特征属性,并计算特征属性对应的哈希值作为第一哈希值,对待处理文件进行分片处理,获得第一数量的子文件,从第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算目标子文件对应的哈希值作为第二哈希值,其中,第二数量小于第一数量,对第一哈希值和第二哈希值进行增量计算,获得第三哈希值作为待处理文件的文件指纹,从而通过待处理文件的特征属性和待处理文件的部分子文件,获得待处理文件的文件指纹,以缩短文件指纹的计算用时,节省文件上传的等待时间,提升用户体验。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种文件指纹获取方法,其特征在于,所述方法包括:
获取待处理文件;
获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值;
对所述待处理文件进行分片处理,获得第一数量的子文件;
从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量;
对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
2.根据权利要求1所述的方法,其特征在于,在所述对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹之后,还包括:
向服务器发送携带所述文件指纹的请求信息,所述请求信息用于请求所述服务器基于所述文件指纹查询所述待处理文件的上传信息;
接收所述服务器反馈的针对所述待处理文件的上传信息的查询结果;
基于所述查询结果对所述待处理文件进行处理。
3.根据权利要求2所述的方法,其特征在于,所述基于所述查询结果对所述待处理文件进行处理,包括:
当所述查询结果表征没有上传所述待处理文件时,将所述待处理文件上传至所述服务器;
当所述查询结果表征已上传所述待处理文件中的部分子文件时,将所述待处理文件中除所述部分子文件以外的其他部分子文件上传至所述服务器。
4.根据权利要求1所述的方法,其特征在于,所述对所述待处理文件进行分片处理,获得第一数量的子文件,包括:
获取所述待处理文件的文件大小;
当所述文件大小大于指定大小时,对所述待处理文件进行分片处理,获得所述第一数量的子文件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,包括:
选取排列在所述第一数量的子文件中的第一个子文件作为所述目标子文件;
选取排列在所述第一数量的子文件中的第一个子文件和最后一个子文件作为所述目标子文件;或
选取排列在所述第一数量的子文件中的第一个子文件、最后一个子文件以及所述第一个子文件和所述最后一个子文件之间的任一个子文件作为所述目标子文件。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述获取所述待处理文件的特征属性,包括:
通过JavaScript读取所述待处理文件的文件信息;
基于所述文件信息确定所述待处理文件的特征属性。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述特征属性包括最后修改时间、文件大小以及文件类型中的一种或几种的组合。
8.一种文件指纹获取装置,其特征在于,所述装置包括:
待处理文件获取模块,用于获取待处理文件;
第一哈希值获取模块,用于获取所述待处理文件的特征属性,并计算所述特征属性对应的哈希值作为第一哈希值;
子文件获取模块,用于对所述待处理文件进行分片处理,获得第一数量的子文件;
第二哈希值获取模块,用于从所述第一数量的子文件中选取第二数量的子文件作为目标子文件,并计算所述目标子文件对应的哈希值作为第二哈希值,其中,所述第二数量小于所述第一数量;
文件指纹获取模块,用于对所述第一哈希值和所述第二哈希值进行增量计算,获得第三哈希值作为所述待处理文件的文件指纹。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器耦接到所述处理器,所述存储器存储指令,当所述指令由所述处理器执行时所述处理器执行如权利要求1-7任一项所述的方法。
10.一种计算机可读取存储介质,其特征在于,所述计算机可读取存储介质中存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028353.8A CN111209254A (zh) | 2020-01-10 | 2020-01-10 | 文件指纹获取方法、装置、电子设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010028353.8A CN111209254A (zh) | 2020-01-10 | 2020-01-10 | 文件指纹获取方法、装置、电子设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111209254A true CN111209254A (zh) | 2020-05-29 |
Family
ID=70785516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010028353.8A Pending CN111209254A (zh) | 2020-01-10 | 2020-01-10 | 文件指纹获取方法、装置、电子设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111209254A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338565A (zh) * | 2021-11-19 | 2022-04-12 | 煤炭科学技术研究院有限公司 | 一种资源配置方法、装置及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
CN107566463A (zh) * | 2017-08-21 | 2018-01-09 | 北京航空航天大学 | 一种提高存储可用性的多云存储管理系统 |
CN109361772A (zh) * | 2018-12-13 | 2019-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储系统中文件上传方法及装置 |
CN109784058A (zh) * | 2019-01-07 | 2019-05-21 | 中国银行股份有限公司 | 版本强一致性校验方法、客户端、服务器及存储介质 |
CN109819056A (zh) * | 2019-03-28 | 2019-05-28 | 山东浪潮云信息技术有限公司 | 一种基于数据流和哈希比对的文件上传方法及系统 |
CN110401725A (zh) * | 2019-08-23 | 2019-11-01 | 深圳市鹰硕技术有限公司 | 文件上传方法、装置、终端、服务器、系统及存储介质 |
-
2020
- 2020-01-10 CN CN202010028353.8A patent/CN111209254A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105260136A (zh) * | 2015-09-24 | 2016-01-20 | 北京百度网讯科技有限公司 | 数据读写方法及分布式存储系统 |
CN105635324A (zh) * | 2016-03-17 | 2016-06-01 | 新浪网技术(中国)有限公司 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
CN107566463A (zh) * | 2017-08-21 | 2018-01-09 | 北京航空航天大学 | 一种提高存储可用性的多云存储管理系统 |
CN109361772A (zh) * | 2018-12-13 | 2019-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储系统中文件上传方法及装置 |
CN109784058A (zh) * | 2019-01-07 | 2019-05-21 | 中国银行股份有限公司 | 版本强一致性校验方法、客户端、服务器及存储介质 |
CN109819056A (zh) * | 2019-03-28 | 2019-05-28 | 山东浪潮云信息技术有限公司 | 一种基于数据流和哈希比对的文件上传方法及系统 |
CN110401725A (zh) * | 2019-08-23 | 2019-11-01 | 深圳市鹰硕技术有限公司 | 文件上传方法、装置、终端、服务器、系统及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338565A (zh) * | 2021-11-19 | 2022-04-12 | 煤炭科学技术研究院有限公司 | 一种资源配置方法、装置及电子设备 |
CN114338565B (zh) * | 2021-11-19 | 2024-05-17 | 煤炭科学技术研究院有限公司 | 一种资源配置方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106657213B (zh) | 文件传输方法和装置 | |
CN109542361B (zh) | 一种分布式存储系统文件读取方法、系统及相关装置 | |
US20140164487A1 (en) | File saving system and method | |
CN109819039B (zh) | 一种文件获取方法、文件存储方法、服务器及存储介质 | |
CN112799584B (zh) | 一种数据存储方法及装置 | |
CN110226158B (zh) | 一种数据预取方法、装置和存储设备 | |
CN110837479B (zh) | 数据处理方法、相关设备及计算机存储介质 | |
CN106874348A (zh) | 文件存储和索引方法、装置及读取文件的方法 | |
CN108228799B (zh) | 对象索引信息的存储方法及装置 | |
CN109299205B (zh) | 将规划行业使用的空间数据进行入库的方法和装置 | |
CN112256599A (zh) | 一种数据预取方法、装置及存储设备 | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
CN112199304B (zh) | 数据预取方法及装置 | |
CN110069217B (zh) | 一种数据存储方法及装置 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN111209254A (zh) | 文件指纹获取方法、装置、电子设备以及存储介质 | |
CN112422604B (zh) | 文件上传方法、装置、系统及计算机设备 | |
CN111158606B (zh) | 存储方法、装置、计算机设备和存储介质 | |
CN116610262A (zh) | 降低ssd顺序读延时的方法、装置、设备及介质 | |
CN107783990B (zh) | 一种数据压缩方法及终端 | |
CN113849125B (zh) | 一种cdn服务器磁盘读取的方法、装置及系统 | |
WO2024021491A1 (zh) | 一种数据切片方法、装置和系统 | |
CN115905168A (zh) | 自适应压缩方法和压缩装置、计算机设备、存储介质 | |
CN109889608B (zh) | 一种动态资源加载方法、装置、电子设备及存储介质 | |
CN111680014B (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 |