CN114168536A - 一种上传文件的方法及终端设备 - Google Patents

一种上传文件的方法及终端设备 Download PDF

Info

Publication number
CN114168536A
CN114168536A CN202111426763.9A CN202111426763A CN114168536A CN 114168536 A CN114168536 A CN 114168536A CN 202111426763 A CN202111426763 A CN 202111426763A CN 114168536 A CN114168536 A CN 114168536A
Authority
CN
China
Prior art keywords
file
target
information base
server
target file
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
Application number
CN202111426763.9A
Other languages
English (en)
Inventor
张哲�
殷亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shengzhen Linkapp Technology Co ltd
Original Assignee
Shengzhen Linkapp Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shengzhen Linkapp Technology Co ltd filed Critical Shengzhen Linkapp Technology Co ltd
Priority to CN202111426763.9A priority Critical patent/CN114168536A/zh
Publication of CN114168536A publication Critical patent/CN114168536A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments

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)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及计算机网络技术领域,提供了一种上传文件的方法,包括:获取需要上传至服务器的目标文件;当所述目标文件为大文件时,在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件,其中,所述大文件为文件大小大于阈值的文件,所述大文件信息库用于记录所述服务器存储的大文件的信息;当所述服务器存储了与所述目标文件的大小相同的文件时,根据所述目标文件的文件标识确定是否上传所述目标文件;当所述服务器未存储与所述目标文件的大小相同的文件时,上传所述目标文件。上述方法能够提高上传文件去重的效率。

Description

一种上传文件的方法及终端设备
技术领域
本申请涉及计算机网络技术领域,尤其涉及一种上传文件的方法及终端设备。
背景技术
随着计算机网络技术的快速发展,数据存储服务器(简称服务器)上存储的海量数据中存在大量的重复数据,主要原因在于不同用户对同一文件数据进行重复上传。上述重复数据造成服务器巨大的内存浪费。目前,服务器采用哈希算法计算上传文件的哈希值,并根据上传文件的哈希值判断该上传文件是否事先已存在于服务器上,从而避免同一文件的重复上传。但是,服务器在利用哈希算法计算一些大文件的哈希值时,需要很长时间,从而导致其对上传文件去重的效率降低。
因此,如何提高上传文件去重的效率是当前急需解决的问题。
发明内容
本申请提供了一种上传文件的方法及终端设备,能够提高上传文件去重的效率。
第一方面,提供了一种上传文件的方法,包括:获取需要上传至服务器的目标文件;当所述目标文件为大文件时,在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件,其中,所述大文件为文件大小大于阈值的文件,所述大文件信息库用于记录所述服务器存储的大文件的信息;当所述服务器存储了与所述目标文件的大小相同的文件时,根据所述目标文件的文件标识确定是否上传所述目标文件;当所述服务器未存储与所述目标文件的大小相同的文件时,上传所述目标文件。
上述方法可以由终端设备中的芯片执行。当目标文件是大文件时,终端设备不是先利用哈希算法计算整个目标文件的哈希值(即目标文件的完整文件标识),而是先根据目标文件的文件大小在本地大文件信息库查找服务器上是否存在某个文件的文件大小与该目标文件的文件大小相同,若大文件信息库中不存在任何一个文件的文件大小与该目标文件的文件大小相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的完整文件标识;只有大文件信息库中存在某个文件的文件大小与该目标文件的文件大小相同时,才利用哈希算法计算该目标文件的文件标识。由此可见,对于一些可以通过文件大小不同而区分出来的大文件,可以省去计算完整文件标识的步骤,上述方法不仅节省了计算机运算资源而且提高了上传文件去重的效率。
可选地,所述文件标识为部分文件标识和完整文件标识,所述根据所述目标文件的文件标识确定是否上传所述目标文件,包括:确定所述大文件信息库是否存在所述部分文件标识;当所述大文件信息库不存在所述部分文件标识时,上传所述目标文件;当所述大文件信息库存在所述部分文件标识时,确定所述大文件信息库是否存在所述完整文件标识;当所述大文件信息库存在所述完整文件标识时,确定不上传所述目标文件;当所述大文件信息库不存在所述完整文件标识时,上传所述目标文件。
本申请实施例中,当服务器存储了与目标文件的大小相同的文件时,终端设备会先利用哈希算法计算目标文件中部分内容的哈希值(即目标文件的部分文件标识),并根据该目标文件的部分文件标识在大文件信息库中查找是否存在某个文件的部分文件标识与该目标文件的部分标识相同;若大文件信息库中不存在任何一个文件的部分文件标识与该目标文件的部分文件标识相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的完整文件标识;只有大文件信息库中存在某个文件的部分文件标识与该目标文件的部分文件标识相同时,才利用哈希算法计算该目标文件的完整文件标识。由此可见,对于一些可以通过部分文件标识不同而区分出来的大文件,可以省去计算完整文件标识的步骤,这样不仅可以节省计算机运算资源而且提高了上传文件去重的效率。
可选地,所述部分文件标识为所述目标文件的头部和尾部预设字段的校验值。
可选地,向所述服务器发送查询请求,所述查询请求用于查询所述大文件信息库是否有更新内容;从所述服务器接收查询结果;当所述查询结果包含所述更新内容时,根据所述更新内容更新所述大文件信息库;当所述查询结果不包含所述更新内容时,确定不更新所述大文件信息库。
终端设备会间隔特定时间(比如每隔5分钟)向服务器询问大文件信息库是否存在新大文件入库,以便于及时与服务器上的大文件信息库存储的大文件信息保持一致,从而降低文件去重的错误率。
可选地,所述在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件,包括:当所述目标文件不包含所述文件标识时,在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件。
当终端设备检测到目标文件不包含文件标识时,先根据目标文件的文件大小在本地大文件信息库查找服务器上是否存在某个文件的文件大小与该目标文件的文件大小相同,若大文件信息库中不存在任何一个文件的文件大小与该目标文件的文件大小相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的文件标识;只有大文件信息库中存在某个文件的文件大小与该目标文件的文件大小相同时,才利用哈希算法计算该目标文件的文件标识。由此可见,对于一些可以通过文件大小不同而区分出来的大文件,可以省去计算文件标识的步骤,上述方法不仅节省了计算机运算资源而且提高了上传文件去重的效率。
可选地,所述文件标识为哈希值。
第二方面,提供了一种终端设备,包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述终端设备执行第一方面中任一项所述的方法。
第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行第一方面中任一项所述的方法。
在本申请的第二方面和第三方面的有益效果参见第一方面的有益效果。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中上传文件的方法流程示意图;
图2为本发明实施例中终端设备与服务器交互的示意图;
图3为本发明实施例中大文件信息库以及文件信息总库中文件信息存储形式的示意图;
图4为本发明实施例中上传文件的方法的流程步骤示意图;
图5为本发明实施例中终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。因此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的上传文件的方法可以应用于手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、个人数字助理(personaldigital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。例如,所述终端设备可以是具有无线通信功能的手持设备、计算设备等。
由于服务器上存储着大量的重复数据,通常用户从客户端向服务器上传文件时,服务器会先计算整个上传文件的哈希值(即完整文件标识),并根据哈希值判断服务器上是否存在某个文件的哈希值与上传文件相同的哈希值相同。但是,对于上传文件是大文件时,客户端计算整个上传文件的哈希值会很耗费时间。比如,在一台酷睿i5处理器上,计算一个4GB的上传文件,可能需要等待2分钟左右才能计算出哈希值,这不仅对客户端造成极大的运算负担,也增加了上传文件等待上传的时间。因此,如何提高上传文件去重的效率是当前急需解决的问题。
下面结合附图和具体实施例对本申请做进一步详细说明。
图1是本申请实施例中上传文件的方法的流程示意图,该方法的执行主体是终端设备,该方法包括:
S101,获取需要上传至服务器的目标文件。
示例性地,上述目标文件可以是任意格式的文件,并且可以是大文件也可以是小文件;比如,常见的ZIP格式的文件、RAR格式的文件、7z格式的文件、可移植的可执行(Portable Executable,PE)格式的文件、EXE格式的文件、docx格式的文件、pptx格式的文件、安卓应用程序(AndroidPackage,APK)、jar格式的文件以及电子出版书(ElectronicPublication,EPUB);上述大文件是指文件大小大于阈值的文件;上述小文件是指文件大小小于或者等于阈值的文件;上述阈值是指文件大小的最大上限值。
终端设备获取需要上传至服务器的目标文件,并获取该目标文件的基本信息,该目标文件的基本信息包括:文件类型以及目标文件的文件大小;终端设备将该目标文件的基本信息发送给服务器。终端设备可以以数据包的形式一次性向服务器发送多个目标文件的基本信息,也可以每次只发送一个目标文件的基本信息。
S102,当目标文件为大文件时,在大文件信息库中查询服务器是否存储了与目标文件的大小相同的文件,其中,大文件为文件大小大于阈值的文件,大文件信息库用于记录服务器存储的大文件的信息。
示例性地,上述阈值是指文件大小的最大上限值,该阈值包括字节阈值,比如,KB阈值、MB阈值以及GB阈值,其中,KB阈值是指文件大小的最大上限值是以KB为单位的字节数,MB阈值是指文件大小的最大上限值是以MB为单位的字节数,GB阈值是指文件大小的最大上限值是以GB为单位的字节数。如图2所示,终端设备201上设置大文件信息库2011;服务器202上设置大文件信息库2021以及文件信息总库2022;终端设备201上的大文件信息库2011与服务器202上的大文件信息库2021记录的大文件信息相同;如图3所示,图3(a)表示大文件信息库2011或者大文件信息库2021存储各个大文件信息的存储形式;比如,大文件信息库2011用于存储文件大小大于阈值500MB的文件的相关信息;这些相关信息包括:文件编号、文件名称、文件类型、文件大小、部分文件标识以及完整文件标识;如文件编号001的文件大小为922MB,文件名称为FF1,文件类型为.docx,部分文件标识为164以及完整文件标识为7685。图3(b)表示文件信息总库2022存储所有上传至服务器上的文件信息的存储形式;文件信息总库2022存储所有上传至服务器上文件的文件编号、文件名称、文件类型、文件大小、部分文件标识以及完整文件标识;比如,如文件编号1001的文件大小为98KB,文件名称为YYR,文件类型为.viso,部分文件标识为47以及完整文件标识为485。
比如,用户想要将目标文件A上传至服务器,其中,目标文件A的大小(即文件大小)为1.8GB,阈值为1GB,当终端设备检测出目标文件A的文件大小1.8GB大于阈值1GB时,确定该目标文件A为大文件;终端设备根据目标文件A的文件大小从本地大文件信息库中查询服务器上是否存在与目标文件A的文件大小相同的文件;当终端设备检测到大文件信息库中不存在任何一个文件与目标文件A的文件大小相同时,终端设备直接将目标文件A上传至服务器;当终端设备检测到大文件信息库中存在某个文件与目标文件A的文件大小相同时,终端设备将利用哈希算法计算目标文件A的文件标识。
S103,当服务器存储了与目标文件的大小相同的文件时,根据目标文件的文件标识确定是否上传目标文件。
示例性地,终端设备获取目标文件的文件大小,并根据目标文件的文件大小从本地大文件信息库中查询服务器上是否存在与目标文件的文件大小相同的文件;当终端设备检测到大文件信息库中不存在任何一个文件与目标文件的文件大小相同时,终端设备直接将目标文件上传至服务器;当终端设备检测到大文件信息库中存在某个文件与目标文件的文件大小相同时,终端设备将利用哈希算法计算目标文件的哈希值(即目标文件的文件标识),并根据目标文件的文件标识进一步判断是否将目标文件上传至服务器。文件标识是指终端设备利用哈希算法计算目标文件的全部内容得到的哈希值或者利用哈希算法计算目标文件的部分内容得到的哈希值。文件标识包括部分文件标识和完整文件标识。特此说明,终端设备检测或者查询的大文件信息库是设置在终端设备上的大文件信息库,而服务器检测或者查询的大文件信息库是设置在服务器上的大文件信息库。
示例性地,文件标识为部分文件标识和完整文件标识,根据目标文件的文件标识确定是否上传目标文件,包括:确定大文件信息库是否存在部分文件标识;当大文件信息库不存在部分文件标识时,上传目标文件;当大文件信息库存在部分文件标识时,确定大文件信息库是否存在完整文件标识;当大文件信息库存在完整文件标识时,确定不上传目标文件;当大文件信息库不存在完整文件标识时,上传目标文件。上述完整文件标识是指利用哈希算法根据目标文件中所有内容计算出的哈希值;而部分文件标识是指利用哈希算法根据目标文件中部分内容计算出的哈希值;上述哈希算法用于对目标文件进行完整性校验,包括:消息摘要算法(Message Digest Algorithm 5,MD5)和循环冗余校验(CyclicRedundancy Check,CRC);而常见的CRC算法有CRC-8、CRC-12、CRC-16和CRC-32等。上述哈希值包括:MD5校验值、CRC-8校验值、CRC-12校验值、CRC-16校验值和CRC-32校验值。上述部分文件标识包括:目标文件的头部和尾部预设字段的校验值、目标文件的头部、中部和尾部预设字段的校验值以及自定义目标文件的预设字段的校验值,其中,自定义目标文件的预设字段的校验值是指用户可以根据实际需求选取目标文件中的特定大小的部分内容(即预设字段),并利用哈希算法求解该部分内容的哈希值(即部分文件标识)。上述特定大小可以是1MB、10MB或者其他字节大小,用户可以根据实际需求选择具体字节大小。
例如,用户想要将目标文件B上传至服务器,且终端设备已检测出目标文件B为大文件;终端设备已检测到本地大文件信息库中存在某个文件与目标文件B的文件大小相同;此时,终端设备提取该目标文件B的部分内容C(比如,提取目标文件B的头部与尾部各1MB的内容),并利用哈希算法计算该部分内容C的哈希值X1(即目标文件的部分文件标识X1)。终端设备根据部分文件标识X1在本地大文件信息库中查询是否存在某个文件的部分文件标识与部分文件标识X1相同;若不存在任何一个文件的部分文件标识与部分文件标识X1相同,则终端设备确定上传目标文件B至服务器;若存在某个文件的部分文件标识与部分文件标识X1相同,则终端设备确定利用哈希算法计算整个目标文件B的哈希值X2(即目标文件的完整文件标识X2)。终端设备根据目标文件B的完整文件标识X2在本地大文件信息库中查询是否存在某个文件的完整文件标识与完整文件标识X2相同;若不存在任何一个文件的完整文件标识与完整文件标识X2相同,则终端设备确定上传目标文件B至服务器;若存在某个文件的完整文件标识与完整文件标识X2相同,则终端设备确定不上传目标文件B至服务器。
本申请实施例中,当服务器存储了与目标文件的大小相同的文件时,终端设备会先利用哈希算法计算目标文件中部分内容的哈希值(即目标文件的部分文件标识),并根据该目标文件的部分文件标识在大文件信息库中查找是否存在某个文件的部分文件标识与该目标文件的部分标识相同;若大文件信息库中不存在任何一个文件的部分文件标识与该目标文件的部分文件标识相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的完整文件标识;只有大文件信息库中存在某个文件的部分文件标识与该目标文件的部分文件标识相同时,才利用哈希算法计算该目标文件的完整文件标识。由此可见,对于一些可以通过部分文件标识不同而区分出来的大文件,可以省去计算完整文件标识的步骤,这样不仅可以节省计算机运算资源而且提高了上传文件去重的效率。
特此说明,终端设备具体提取目标文件的哪部分内容,是根据大文件信息库中具体存储各个大文件的哪部分内容的哈希值有关。比如,大文件信息库存储的是各个文件的头部与尾部预设字段的哈希值,则终端设备就要提取目标文件的头部与尾部预设字段的部分内容,并根据部分内容计算目标文件的部分文件标识。
示例性地,向服务器发送查询请求,查询请求用于查询大文件信息库是否有更新内容;从服务器接收查询结果;当查询结果包含更新内容时,根据更新内容更新大文件信息库;当查询结果不包含更新内容时,确定不更新大文件信息库。例如,终端设备会间隔一定的时间(比如,间隔2分钟)向服务器发送大文件信息库是否有更新内容的查询请求Y1;服务器接收并响应该查询请求Y1,并将是否有更新内容的查询结果Y2发送给终端设备;服务器会基于终端设备上一次的查询情况Y0,来确定当前是否存在新大文件信息更新至大文件信息库,即服务器在上一次查询的基础上判断是否有新大文件信息更新至大文件信息库;若终端设备接收服务器发送的存在新大文件信息更新至大文件信息库的查询结果Y2,则终端设备根据该查询结果Y2更新本地的大文件信息库;上述查询结果Y2包括:新大文件的文件类型、文件大小、部分文件标识以及完整文件标识。若终端设备接收服务器发送的不存在新大文件信息更新至大文件信息库的查询结果Y2,则终端设备确定不更新本地的大文件信息库。
终端设备会间隔特定时间(比如每隔5分钟)向服务器询问大文件信息库是否存在新大文件入库,以便于及时与服务器上的大文件信息库存储的大文件信息保持一致,从而降低文件去重的错误率。
示例性地,在大文件信息库中查询服务器是否存储了与目标文件的大小相同的文件,包括:当目标文件不包含文件标识时,在大文件信息库中查询服务器是否存储了与目标文件的大小相同的文件。若目标文件不包含文件标识(即目标文件既不包含完整文件标识也不包含部分文件标识),则终端设备根据目标文件的文件大小查询本地大文件信息库,以确定是否存在某个文件的文件大小与目标文件的文件大小相同。
比如,目标文件是AVI格式的视频文件V1,该视频文件V1为大文件且不包含文件标识;若用户想要将该视频文件V1上传至服务器,则终端设备会先根据该视频文件V1的文件大小在大文件信息库中查找是否存在某个大文件的文件大小与该视频文件V1的文件大小相同。若不存在任何一个大文件的文件大小与该视频文件V1的文件大小相同,则终端设备确定上传该视频文件V1至服务器;若存在某个大文件的文件大小与该视频文件V1的文件大小相同,则终端设备会提取该视频文件V1中头部和尾部各5MB的内容并利用哈希算法计算该内容的哈希值W1(即视频文件V1的部分文件标识W1)。终端设备根据部分文件标识W1在本地大文件信息库中查询是否存在某个文件的部分文件标识与部分文件标识W1相同;若不存在任何一个文件的部分文件标识与部分文件标识W1相同,则终端设备确定上传视频文件V1至服务器;若存在某个文件的部分文件标识与部分文件标识W1相同,则终端设备确定利用哈希算法计算整个视频文件V1的哈希值W2(即目标文件的完整文件标识W2)。终端设备根据视频文件V1的完整文件标识W2在本地大文件信息库中查询是否存在某个文件的完整文件标识与完整文件标识W2相同;若不存在任何一个文件的完整文件标识与完整文件标识W2相同,则终端设备确定上传视频文件V1至服务器;若存在某个文件的完整文件标识与完整文件标识W2相同,则终端设备确定不上传视频文件V1至服务器。
由此可见,当终端设备检测到目标文件不包含文件标识时,先根据目标文件的文件大小在本地大文件信息库查找服务器上是否存在某个文件的文件大小与该目标文件的文件大小相同,若大文件信息库中不存在任何一个文件的文件大小与该目标文件的文件大小相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的文件标识;只有大文件信息库中存在某个文件的文件大小与该目标文件的文件大小相同时,才利用哈希算法计算该目标文件的文件标识。由此可见,对于一些可以通过文件大小不同而区分出来的大文件,可以省去计算文件标识的步骤,上述方法不仅节省了计算机运算资源而且提高了上传文件去重的效率。
S104,当服务器未存储与目标文件的大小相同的文件时,上传目标文件。
示例性地,终端设备获取目标文件的文件大小;当终端设备判断目标文件为大文件时,终端设备根据目标文件的文件大小查询本地大文件信息库,以确定是否存在某个文件的文件大小与目标文件的文件大小相同。若终端设备未在本地大文件信息库查找到任何一个文件的文件大小与目标文件的文件大小相同,则终端设备确定将目标文件上传至服务器。当终端设备判断目标文件为小文件时,终端设备计算该目标文件的完整文件标识,并将该完整文件标识发送至服务器;服务器根据该完整标识查找文件信息总库,以确定是否存在某个文件的完整文件标识与目标文件的完整文件标识相同。当终端设备接收到服务器发送的不存在任何一个文件的完整文件标识与目标文件的完整文件标识相同时,终端设备将目标文件上传至服务器;当终端设备接收到服务器发送的存在某个文件的完整文件标识与目标文件的完整文件标识相同时,终端设备确定不上传目标文件至服务器。
综上所述,当目标文件是大文件时,终端设备不是先利用哈希算法计算整个目标文件的哈希值(即目标文件的完整文件标识),而是先根据目标文件的文件大小在本地大文件信息库查找服务器上是否存在某个文件的文件大小与该目标文件的文件大小相同,若大文件信息库中不存在任何一个文件的文件大小与该目标文件的文件大小相同,则终端设备将该目标文件上传至服务器,而无需再计算目标文件的完整文件标识;只有大文件信息库中存在某个文件的文件大小与该目标文件的文件大小相同时,才利用哈希算法计算该目标文件的文件标识。由此可见,对于一些可以通过文件大小不同而区分出来的大文件,可以省去计算完整文件标识的步骤,上述方法不仅节省了计算机运算资源而且提高了上传文件去重的效率。
为了便于理解,下面结合图4说明本申请提供的上传文件的方法的流程步骤:
(1)终端设备获取用户想要上传服务器的目标文件,并提取目标文件的基本信息,该基本信息包括目标文件的文件类型以及文件大小。
(2)终端设备将目标文件的文件大小与阈值进行比较;若目标文件的文件大小大于阈值,则目标文件为大文件并执行步骤(3)至(11);若目标文件的文件大小小于或者等于阈值,则目标文件为小文件并执行步骤(12)至(14)。
(3)终端设备根据目标文件的文件大小查询本地大文件信息库,以确定大文件信息库中是否存在某个文件的文件大小与目标文件的文件大小相同。
(4)若大文件信息库中不存在任何一个文件的文件大小与目标文件的文件大小相同,则终端设备将该目标文件上传至服务器。
(5)若大文件信息库中存在某个文件的文件大小与目标文件的文件大小相同,则终端设备提取该目标文件的部分内容并利用哈希算法计算该部分内容的哈希值,即得到该目标文件的部分文件标识。
(6)终端设备根据该目标文件的部分文件标识查找本地大文件信息库,以确定大文件信息库中是否存在某个文件的部分文件标识与目标文件的部分文件标识相同。
(7)若大文件信息库中不存在任何一个文件的部分文件标识与目标文件的部分文件标识相同,则终端设备将该目标文件上传至服务器。
(8)若大文件信息库中存在某个文件的部分文件标识与目标文件的部分文件标识相同,则终端设备利用哈希算法计算整个目标文件的哈希值,即得到目标文件的完整文件标识。
(9)终端设备根据该目标文件的完整文件标识查找本地大文件信息库,以确定大文件信息库中是否存在某个文件的完整文件标识与目标文件的完整文件标识相同。
(10)若大文件信息库中不存在任何一个文件的完整文件标识与目标文件的完整文件标识相同,则终端设备将该目标文件上传至服务器。
(11)若大文件信息库中存在某个文件的完整文件标识与目标文件的完整文件标识相同,则终端设备确定将该目标文件不上传至服务器,并提示用户该目标文件已上传至服务器,无需再次上传。
(12)终端设备在判断出目标文件是小文件后,计算目标文件的完整文件标识,并将该完整文件标识发送至服务器,服务器根据该完整标识查找文件信息总库,以确定是否存在某个文件的完整文件标识与目标文件的完整文件标识相同。
(13)若终端设备接收到服务器发送的不存在任何一个文件的完整文件标识与目标文件的完整文件标识相同的反馈信息,则终端设备根据该反馈信息将该目标文件上传至服务器。
(14)若终端设备接收到服务器发送的存在某个文件的完整文件标识与目标文件的完整文件标识相同的反馈信息,则终端设备根据该反馈信息确定将该目标文件不上传至服务器,并提示用户该目标文件已上传至服务器,无需再次上传。
图5示出了本申请提供了一种终端设备的结构示意图。图5中的虚线表示该单元或该模块为可选的。终端设备500可用于实现上述方法实施例中描述的方法。终端设备500可以是服务器或芯片。
终端设备500包括一个或多个处理器501,该一个或多个处理器501可支持终端设备500实现图1所对应方法实施例中的方法。处理器501可以是通用处理器或者专用处理器。例如,处理器501可以是中央处理器(Central Processing Unit,CPU)。CPU可以用于对终端设备500进行控制,执行软件程序,处理软件程序的数据。终端设备500还可以包括通信单元505,用以实现信号的输入(接收)和输出(发送)。
例如,终端设备500可以是芯片,通信单元505可以是该芯片的输入和/或输出电路,或者,通信单元505可以是该芯片的通信接口,该芯片可以作为终端设备的组成部分。
又例如,通信单元505可以是该终端设备500的收发器,或者,通信单元505可以是该终端设备500的收发电路。
终端设备500中可以包括一个或多个存储器502,其上存有程序504,程序504可被处理器501运行,生成指令503,使得处理器501根据指令503执行上述方法实施例中描述的方法。可选地,存储器502中还可以存储有数据。可选地,处理器501还可以读取存储器502中存储的数据,该数据可以与程序504存储在相同的存储地址,该数据也可以与程序504存储在不同的存储地址。
处理器501和存储器502可以单独设置,也可以集成在一起,例如,集成在终端设备的系统级芯片(System On Chip,SOC)上。
处理器501执行上传文件的方法的具体方式可以参见方法实施例中的相关描述。
应理解,上述方法实施例的各步骤可以通过处理器501中的硬件形式的逻辑电路或者软件形式的指令完成。处理器501可以是CPU、数字信号处理器(Digital SignalProcessor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其它可编程逻辑器件,例如,分立门、晶体管逻辑器件或分立硬件组件。
本申请还提供了一种计算机程序产品,该计算机程序产品被处理器501执行时实现本申请中任一方法实施例所述的方法。
该计算机程序产品可以存储在存储器502中,例如是程序504,程序504经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器501执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时实现本申请中任一方法实施例所述的方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
该计算机可读存储介质例如是存储器502。存储器502可以是易失性存储器或非易失性存储器,或者,存储器502可以同时包括易失性存储器和非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchLink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。
本领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的装置和设备的具体工作过程以及产生的技术效果,可以参考前述方法实施例中对应的过程和技术效果,在此不再赘述。
在本申请所提供的几个实施例中,所揭露的系统、装置和方法,可以通过其它方式实现。例如,以上描述的方法实施例的一些特征可以忽略,或不执行。以上所描述的装置实施例仅仅是示意性的,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,多个单元或组件可以结合或者可以集成到另一个系统。另外,各单元之间的耦合或各个组件之间的耦合可以是直接耦合,也可以是间接耦合,上述耦合包括电的、机械的或其它形式的连接。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (8)

1.一种上传文件的方法,其特征在于,所述方法包括:
获取需要上传至服务器的目标文件;
当所述目标文件为大文件时,在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件,其中,所述大文件为文件大小大于阈值的文件,所述大文件信息库用于记录所述服务器存储的大文件的信息;
当所述服务器存储了与所述目标文件的大小相同的文件时,根据所述目标文件的文件标识确定是否上传所述目标文件;
当所述服务器未存储与所述目标文件的大小相同的文件时,上传所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述文件标识为部分文件标识和完整文件标识,
所述根据所述目标文件的文件标识确定是否上传所述目标文件,包括:
确定所述大文件信息库是否存在所述部分文件标识;
当所述大文件信息库不存在所述部分文件标识时,上传所述目标文件;
当所述大文件信息库存在所述部分文件标识时,确定所述大文件信息库是否存在所述完整文件标识;当所述大文件信息库存在所述完整文件标识时,确定不上传所述目标文件;当所述大文件信息库不存在所述完整文件标识时,上传所述目标文件。
3.根据权利要求2所述的方法,其特征在于,所述部分文件标识为所述目标文件的头部和尾部预设字段的校验值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
向所述服务器发送查询请求,所述查询请求用于查询所述大文件信息库是否有更新内容;
从所述服务器接收查询结果;
当所述查询结果包含所述更新内容时,根据所述更新内容更新所述大文件信息库;
当所述查询结果不包含所述更新内容时,确定不更新所述大文件信息库。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件,包括:
当所述目标文件不包含所述文件标识时,在大文件信息库中查询所述服务器是否存储了与所述目标文件的大小相同的文件。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述文件标识为哈希值。
7.一种终端设备,其特征在于,所述终端设备包括处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于从所述存储器中调用并运行所述计算机程序,使得所述终端设备执行权利要求1至6中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得处理器执行权利要求1至6中任一项所述的方法。
CN202111426763.9A 2021-11-27 2021-11-27 一种上传文件的方法及终端设备 Pending CN114168536A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111426763.9A CN114168536A (zh) 2021-11-27 2021-11-27 一种上传文件的方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111426763.9A CN114168536A (zh) 2021-11-27 2021-11-27 一种上传文件的方法及终端设备

Publications (1)

Publication Number Publication Date
CN114168536A true CN114168536A (zh) 2022-03-11

Family

ID=80481267

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111426763.9A Pending CN114168536A (zh) 2021-11-27 2021-11-27 一种上传文件的方法及终端设备

Country Status (1)

Country Link
CN (1) CN114168536A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725026A (zh) * 2023-08-14 2024-03-19 荣耀终端有限公司 一种重复文件的查找方法和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141476A (zh) * 2007-10-09 2008-03-12 创新科存储技术(深圳)有限公司 文件存储、下载方法以及装置
CN103002029A (zh) * 2012-11-26 2013-03-27 北京百度网讯科技有限公司 上传文件的管理方法、系统和客户端
US20160057201A1 (en) * 2013-04-02 2016-02-25 Huawei Technologies Co., Ltd. File Uploading Method, Client, and Application Server in Cloud Storage, and Cloud Storage System
CN108347459A (zh) * 2017-01-25 2018-07-31 贵州白山云科技有限公司 一种云端数据快速存储方法及装置
CN109151059A (zh) * 2018-09-27 2019-01-04 乐蜜有限公司 一种文件上传方法、装置、电子设备及存储介质
CN113392068A (zh) * 2021-06-28 2021-09-14 上海商汤科技开发有限公司 数据处理方法、装置和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101141476A (zh) * 2007-10-09 2008-03-12 创新科存储技术(深圳)有限公司 文件存储、下载方法以及装置
CN103002029A (zh) * 2012-11-26 2013-03-27 北京百度网讯科技有限公司 上传文件的管理方法、系统和客户端
US20160057201A1 (en) * 2013-04-02 2016-02-25 Huawei Technologies Co., Ltd. File Uploading Method, Client, and Application Server in Cloud Storage, and Cloud Storage System
CN108347459A (zh) * 2017-01-25 2018-07-31 贵州白山云科技有限公司 一种云端数据快速存储方法及装置
CN109151059A (zh) * 2018-09-27 2019-01-04 乐蜜有限公司 一种文件上传方法、装置、电子设备及存储介质
CN113392068A (zh) * 2021-06-28 2021-09-14 上海商汤科技开发有限公司 数据处理方法、装置和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
佚名: ""java 判断两个文件是否相同"", 《HTTPS://WWW.LIKECS.COM/SHOW-203823824.HTML》 *
黄昆仑: ""java 判断两个文件是否相同"", 《HTTPS://BLOG.51CTO.COM/HUANGKUNLUN520/1653874》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725026A (zh) * 2023-08-14 2024-03-19 荣耀终端有限公司 一种重复文件的查找方法和电子设备

Similar Documents

Publication Publication Date Title
TW201828220A (zh) 業務處理方法及裝置
CN109391673B (zh) 一种管理更新文件的方法、系统及终端设备
CN110688096B (zh) 包含插件的应用程序的构建方法、装置、介质及电子设备
CN108846129B (zh) 存储数据访问方法、装置及存储介质
CN111831208A (zh) 一种信息处理方法、装置、终端设备及存储介质
CN111177121A (zh) 订单数据反馈方法、装置、计算机设备及存储介质
CN114168536A (zh) 一种上传文件的方法及终端设备
CN112559529A (zh) 数据存储方法、装置、计算机设备及存储介质
CN114817146A (zh) 一种处理数据的方法和装置
CN112688811B (zh) 无线局域网络管理方法、装置、设备和存储介质
CN114048169A (zh) 文档访问方法、装置、服务器及存储介质
EP4044542A1 (en) Method and apparatus for subscribing to resource
CN114238240B (zh) 一种分布式多集群的数据存储方法、装置及存储介质
CN109240621B (zh) 一种非易失性内存储器管理方法与装置
CN107391711B (zh) 获取歌曲伴奏的方法和装置
CN112783866B (zh) 数据读取方法、装置、计算机设备和存储介质
CN107977381B (zh) 数据配置方法、索引管理方法、相关装置以及计算设备
CN115374083A (zh) 数据源的切换方法、装置、电子设备及存储介质
CN114168537A (zh) 一种上传文件的方法及终端设备
CN112947956A (zh) 一种应用软件升级方法
CN112114871A (zh) 一种代码共享方法、装置、服务器、终端及介质
CN112104735A (zh) 一种文件传输方法、系统、装置及电子设备
CN112491956A (zh) 物联网设备中通讯模组的升级方法、装置和计算机设备
US11445036B1 (en) Cluster management method and apparatus, electronic device and storage medium
US11809709B2 (en) Metadata size reduction for data objects in cloud storage systems

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: 20220311

RJ01 Rejection of invention patent application after publication