CN107707679A - 文件上传方法及装置 - Google Patents
文件上传方法及装置 Download PDFInfo
- Publication number
- CN107707679A CN107707679A CN201711208594.5A CN201711208594A CN107707679A CN 107707679 A CN107707679 A CN 107707679A CN 201711208594 A CN201711208594 A CN 201711208594A CN 107707679 A CN107707679 A CN 107707679A
- Authority
- CN
- China
- Prior art keywords
- file
- file destination
- signing messages
- destination
- server
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种文件上传方法和装置,其中,方法包括:对需要上传的目标文件进行属性验证;当属性验证通过后,将所述目标文件添加到文件队列中;获取所述目标文件的第一签名信息;在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置;如果记录有所述断点位置,从所述断点位置开始向所述服务器续传所述目标文件。通过本方法,能够降低文件上传对应用环境的要求,提高文件上传成功率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种文件上传方法和装置。
背景技术
网页应用中,经常遇到将客户端文件上传至服务器的使用情景,比如上传图片或视频文件至服务器,以供其他客户端下载,实现资源共享。
然而,由于网页应用场景的复杂性以及网页条件的不稳定性等原因,导致文件上传过程中存在较多不可控的因素,比如随着软件类型的增多,客户端对于文件格式的判断准确性下降;网络环境较差时,文件传输出现卡顿情况,导致文件传输失败等。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种文件上传方法,以降低文件上传对应用环境的要求,提高文件上传成功率。
本发明的第二个目的在于提出一种文件上传装置。
本发明的第三个目的在于提出一种计算机设备。
本发明的第四个目的在于提出一种计算机程序产品。
本发明的第五个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种文件上传方法,包括:
对需要上传的目标文件进行属性验证;
当属性验证通过后,将所述目标文件添加到文件队列中;
获取所述目标文件的第一签名信息;
在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置;
如果记录有所述断点位置,从所述断点位置开始向所述服务器续传所述目标文件。
本发明实施例的文件上传方法,通过对需要上传的目标文件进行属性验证,当验证通过后将目标文件添加到文件队列中,获取目标文件的第一签名信息,在第一签名信息不存在于从服务器中获取到的签名信息列表中时,进一步判断目标文件是否记录有断点位置,并在记录有断点位置时,从断点位置开始向服务器续传目标文件。通过在文件上传之前先进行属性验证,能够缓解客户端对文件格式判断不准确的问题;通过签名信息判断服务器上是否已经存在目标文件,避免重复上传。而且在上传的过程中允许断点续传,当目标文件不存在于服务器上时,可以尝试获取目标文件的断点位置,获取到断点位置则从断点位置开始向服务器续传目标文件,能够实现目标文件的分片上传,降低对网络带宽的要求,提高文件上传成功率。
为达上述目的,本发明第二方面实施例提出了一种文件上传装置,包括:
验证模块,用于对需要上传的目标文件进行属性验证;
添加模块,用于当属性验证通过后,将所述目标文件添加到文件队列中;
获取模块,用于获取所述目标文件的第一签名信息;
判断模块,用于在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置;
上传模块,用于在记录有断点位置时,从所述断点位置开始向所述服务器续传所述目标文件。
本发明实施例的文件上传装置,通过对需要上传的目标文件进行属性验证,当验证通过后将目标文件添加到文件队列中,获取目标文件的第一签名信息,在第一签名信息不存在于从服务器中获取到的签名信息列表中时,进一步判断目标文件是否记录有断点位置,并在记录有断点位置时,从断点位置开始向服务器续传目标文件。通过在文件上传之前先进行属性验证,能够缓解客户端对文件格式判断不准确的问题;通过签名信息判断服务器上是否已经存在目标文件,避免重复上传。而且在上传的过程中允许断点续传,当目标文件不存在于服务器上时,可以尝试获取目标文件的断点位置,获取到断点位置则从断点位置开始向服务器续传目标文件,能够实现目标文件的分片上传,降低对网络带宽的要求,提高文件上传成功率。
为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时,实现如第一方面实施例所述的文件上传方法。
为了实现上述目的,本发明第四方面实施例提出了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行如第一方面实施例所述的文件上传方法。
为了实现上述目的,本发明第五方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所述的文件上传方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明一实施例提出的文件上传方法的流程示意图;
图2为本发明另一实施例提出的文件上传方法的流程示意图;
图3为本发明又一实施例提出的文件上传方法的流程示意图;
图4为本发明再一实施例提出的文件上传方法的流程示意图;
图5为本发明一实施例提出的文件上传装置的结构示意图;
图6为本发明另一实施例提出的文件上传装置的结构示意图;
图7为本发明又一实施例提出的文件上传装置的结构示意图;以及
图8为本发明一实施例提出的计算机设备的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的文件上传方法和装置。
目前,客户端文件与服务器端文件交互的这类跨终端的文件上传交互应用越来越普及。然而,由于网页应用使用情景的复杂性、网络条件的不稳定性以及客户端文件格式判断的不准确性等原因,造成了文件上传过程中存在诸多不可控因素,比如:(1)随着市面上各类软件的蓬勃发展,网页应用中客户端对于文件格式的判断越来越不准确和敏锐,例如,sketch等新款软件的存储文件不能通过MIME来进行文件格式的判断;(2)网页应用中客户端对文件的哈希值(hash值)的计算存在瓶颈,很难方便快捷地计算出正确的hash值;(3)服务端已存在的文件内容被软件***进行无效的交互修改,造成操作使用上的诸多不便;(4)在网络环境条件较差的情况下,文件传输存在迟缓、卡顿等情况,造成传输工作无法正常、顺利地完成;(5)大文件的同时上传可能会导致软件***瘫痪,造成文件数据的损坏或丢失;等等。
针对上述问题,本发明提出了一种文件上传方法,能够降低文件上传对应用环境的要求,提高文件上传的成功率。
图1为本发明一实施例提出的文件上传方法的流程示意图。
如图1所示,该文件上传方法包括以下步骤:
步骤101,对需要上传的目标文件进行属性验证。
本实施例中,当需要将客户端的文件上传至服务端时,可以先对需要上传的目标文件进行属性验证,并在验证通过后才将目标文件上传至服务端,若属性验证未通过,则终止该目标文件的上传操作。
进一步地,当属性验证未通过时,还可以向用户展示提示信息,以提醒用户上传被终止,并向用户展示终止原因。比如,可以向用户展示因目标文件的大小不符合要求而终止上传的提示信息。
其中,对目标文件进行属性验证可以包括验证目标文件的类型、大小等。
此处需要说明的是,对对需要上传的目标文件进行属性验证的详细描述将在后续内容中给出,为避免赘述,此处不作过多说明。
步骤102,当属性验证通过后,将目标文件添加到文件队列中。
对于目标文件进行属性验证并通过后,可以将目标文件添加至文件队列中,以等待上传。
可选地,在本发明实施例一种可能的实现方式中,当目标文件通过属性验证,在添加至文件队列之前,还可以判断文件队列中是否存在相同的文件,并在文件队列中不存在与目标文件相同的文件时,将目标文件添加至文件队列中;当文件队列中存在与目标文件相同的文件时,进一步判断是否允许多次上传相同的文件,若不允许,则不将目标文件添加至文件队列中;若允许,则将目标文件添加至文件队列中,以避免在不允许上传相同文件的情况下重复上传文件导致资源浪费。
步骤103,获取目标文件的第一签名信息。
其中,目标文件的第一签名信息可以是目标文件的哈希值,则获取目标文件的第一签名信息包括:计算目标文件的哈希值作为第一签名信息。具体地,可以采用相关的Hash算法来计算目标文件的哈希值。
进一步地,在本发明实施例一种可能的实现方式中,在计算哈希值时,还可以先根据客户端的条件判断是否允许并行计算,并在判定允许并行计算时,在计算目标文件的哈希值的同时,还从缓存池中读取文件队列中除目标文件之外的文件,并计算文件的哈希值作为对应文件的第一签名信息,进而利用目标文件的哈希值和每个文件的哈希值,形成哈希队列。在判定不允许并行计算时,则可以每次对一个文件进行哈希值的计算,计算完成后再从缓存池中读取下一个文件并计算哈希值,并将缓存池中的所有文件均计算完成后,利用所得的哈希值形成哈希队列。
此处需要说明的是,在判定不允许并行计算时,为了每次计算时能够计算多个哈希值,以提高计算效率,在本发明实施例一种可能的实现方式中,还可以对计算队列的长度进行检测,判断计算队列是否溢出。当计算队列未溢出时,继续从缓存池中读取文件,以增加计算队列的长度,保证每次计算哈希值的计算量达到最大,使每次计算能够得到尽可能多的文件的哈希值,提高计算效率,提高方法的处理能力。
通过根据客户端的条件判断是否允许并行计算,并在允许并行计算时,并行计算多个文件的哈希值,在不允许并行计算时,对每个文件串行计算哈希值,以实现根据客户端环境选择合适的计算方法,提高方法适用性。
步骤104,在第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断目标文件是否记录有断点位置。
其中,断点位置用于指示文件上次传输时被中断的位置,当文件一次未传输完成而传输结束时,文件被分割成已传输数据和未传输数据两部分,并可在数据中断处添加中断标记,标记位置即为断点位置。
本实施例中,可以预先在服务器中建立并存储一个签名信息列表,对于每个上传至服务器的文件,可以将文件对应的签名信息记录于签名信息列表中。针对每个待上传的目标文件,获取了目标文件的第一签名信息之后,可以从服务器中获取签名信息列表,并将目标文件的第一签名信息与获取的签名信息列表中记录的签名信息进行匹配,以判断第一签名信息是否存在于签名信息列表中。当第一签名信息不存在于签名信息列表中时,则进一步判断目标文件是否记录有断点位置。当第一签名信息存在于签名信息列表中时,表明该服务器中已存储有该目标文件,则可以终止上传,同时可以向用户展示目标文件已存在的提示信息,避免向同一服务器上传重复文件导致资源浪费。
步骤105,如果记录有断点位置,从断点位置开始向服务器续传目标文件。
当判定得知目标文件中记录有断点位置时,可以认为目标文件的部分数据已上传,则可以从断点位置开始,向服务器继续上传目标文件。当目标文件中未记录断点位置时,可以认为目标文件未被上传过,则可以直接上传整个目标文件。
本实施例的文件上传方法,通过对需要上传的目标文件进行属性验证,当验证通过后将目标文件添加到文件队列中,获取目标文件的第一签名信息,在第一签名信息不存在于从服务器中获取到的签名信息列表中时,进一步判断目标文件是否记录有断点位置,并在记录有断点位置时,从断点位置开始向服务器续传目标文件。通过在文件上传之前先进行属性验证,能够缓解客户端对文件格式判断不准确的问题;通过签名信息判断服务器上是否已经存在目标文件,避免重复上传。而且在上传的过程中允许断点续传,当目标文件不存在于服务器上时,可以尝试获取目标文件的断点位置,获取到断点位置则从断点位置开始向服务器续传目标文件,能够实现目标文件的分片上传,降低对网络带宽的要求,提高文件上传成功率。
为了更加清楚的描述上述实施例中对对需要上传的目标文件进行属性验证的具体过程,本发明实施例提出了另一种文件上传方法,图2为本发明另一实施例提出的文件上传方法的流程示意图。
如图2所示,在如图1所示实施例的基础上,步骤101包括以下步骤:
步骤201,提取目标文件的文件格式和文件大小,形成目标文件的属性信息。
其中,文件格式包括文件扩展名、文件MIME类型和/或文件名正则表达式。
对于待上传的目标文件,可以先根据目标文件提取目标文件的文件格式和文件大小,并将提取的文件格式和文件大小作为目标文件的属性信息。
步骤202,验证属性信息中的文件格式是否满足预设的文件格式要求。
本实施例中,对于目标文件的属性信息,可以先验证属性信息中的文件格式是否满足预设的文件格式要求。其中,预设的文件格式可以是服务器允许上传的文件格式。
作为一种示例,当文件格式包括文件扩展名、文件MIME类型和文件名正则表达式时,需要验证文件扩展名是否符合服务器允许上传的文件扩展名、文件MIME类型是否符合表达要求,以及验证文件名正则表达式是否正确,当验证均通过时,才认为文件格式满足预设的文件格式要求;若其中任一验证未通过,则认为目标文件的文件格式不满足预设的文件格式要求,此时可向用户展示相关信息以提醒用户哪种验证未通过,以便于用户进行针对性修改。
步骤203,如果文件格式满足预设的文件格式要求,则验证文件大小是否满足预设的文件大小要求。
其中,预设的文件大小可以是服务器允许的某类型文件的最大数据量。针对不同类型的文件,服务器可以设置不同大小的最大数据量,比如,对于文本文件,服务器允许的最大数据量为100M;对于音频文件,服务器允许的最大数据量为30M;对于视频文件,服务器允许的最大数据量为3G。
当目标文件的文件格式满足预设的文件格式要求时,可以进一步验证目标文件的文件大小是否满足预设的文件大小要求。具体地,可以根据目标文件的扩展名确定目标文件的类型,并从服务器中获取与所确定的类型对应的最大数据量,将目标文件的文件大小与服务器允许的该类型文件的最大数据量进行比较,当文件大小未超过所允许的最大数据量时,认为文件大小满足预设的文件大小要求。当文件大小超过所允许的最大数据量时,文件上传过程终止,并可向用户展示文件过大的提示信息。
步骤204,如果文件大小满足预设的文件大小要求,则通过对目标文件的属性验证。
当目标文件的文件大小满足预设的文件大小要求时,则认为通过对目标文件的属性验证。
本实施例的文件上传方法,通过从目标文件中提取文件格式和文件大小,并在验证文件格式满足预设的文件格式要求以及文件大小满足预设的文件大小要求时,认为通过对目标文件的属性验证,能够实现目标文件的自动验证,保证所上传文件符合服务器的要求,为成功上传文件奠定基础。
为了更加清楚地描述上述实施例中目标文件是否记录有断点位置的具体实现过程,本发明提出了另一种文件上传方法,图3为本发明又一实施例提出的文件上传方法的流程示意图。
如图3所示,在如图1所示实施例的基础上,步骤104可以包括以下步骤:
步骤301,向服务器发送第一请求,第一请求用于请求签名信息列表。
本实施例中,获取了目标文件的第一签名信息之后,客户端可以向服务器发送第一请求,以从服务器获取签名信息列表。其中,签名信息列表中记录有服务器中已存储文件的签名信息。
步骤302,将目标文件的第一签名信息与签名信息列表匹配。
从服务器获取了签名信息列表之后,可以将目标文件的第一签名信息与签名信息列表中记录的每一条签名信息进行比对,以判断签名信息列表中是否存在与第一签名信息匹配的签名信息。
步骤303,如果在签名信息列表中未匹配到与第一签名信息一致的签名信息,则根据目标文件的标识,从第一存储空间中查询目标文件的断点信息。
其中,第一存储空间中可以存储每个已上传至服务器的文件的上传信息,上传信息包括但不限于已上传文件的上传完成时间、文件的大小、文件的类型、文件上传过程中是否被中断、中断信息等。
当未在签名信息列表中匹配到与第一签名信息一致的签名信息时,可以根据目标文件的标识,从第一存储空间中查询目标文件的断点信息。其中,目标文件的标识可以是目标文件的扩展名、名称、编号等中的任意一种或至少两种的组合。
步骤304,如果存储有目标文件的断点信息,则从断点信息中获取断点位置。
当目标文件曾经被上传,且上传过程被中断时,比如因网络中断或者网络条件太差导致上传过程中断,第一存储空间中可以记录该文件标号以及断点信息。当目标文件再次被上传时,根据目标文件的标识,可以从第一存储空间中查询到目标文件的断点信息,并从断点信息中获取断点位置。其中,断点信息可以包括但不限于中断时间、中断位置、中断时已上传的数据量等。
本实施例的文本上传方法,通过从服务器获取签名信息列表,将获取的目标文件的第一签名信息与签名信息列表进行匹配,并在签名信息列表中不存在与第一签名信息匹配的签名信息时,从第一存储空间中查询目标文件的断点信息,并在查询到目标文件的断点信息时,从断点信息中获取断点位置,以便再次上传目标文件时,从断点位置开始继续上传,避免重复上传目标文件的部分数据,能够节省带宽资源以及服务器的存储空间。
为了更加清楚地描述上述实施例中从断点位置开始向服务器续传目标文件的具体实现过程,本发明提出了另一种文件上传方法,图4为本发明再一实施例提出的文件上传方法的流程示意图。
如图4所示,在如图1所示实施例的基础上,步骤105可以包括以下步骤:
步骤401,将目标文件进行分片,得到目标文件的文件片段。
当查询到目标文件的断点位置时,可以对目标文件进行分片,得到目标文件的文件片段。比如,可以按照预设的大小对目标文件进行分片,使每个文件片段的大小不大于预设的大小。
可选地,在本发明实施例一种可能的实现方式中,可以预先设置好分片的大小,并在对目标文件进行分片之前,根据预设的分片的大小,判断是否需要对目标文件进行分片,当目标文件的大小大于预设的分片的大小时,将目标文件进行分片,得到目标文件的文件片段;当目标文件的大小不大于预设的分片的大小时,可以不进行分片直接上传。
步骤402,将包括断点位置的文件片段作为起始文件片段。
步骤403,从起始文件片段开始向服务器续传目标文件。
本实施例中,对目标文件进行分片之后,可以将包括断点位置的文件片段作为起始文件片段,并从起始文件片段开始,向服务器续传目标文件。
具体地,可以将起始文件片段以及后续文件片段添加到上传队列中,通过上传队列并行向服务器续传目标文件。其中,在向上传队列添加文件片段时,可以先获取上传队列的容量,按照上传队列的容量和文件片段的大小,确定上传的文件片段的个数,并从起始文件片段开始,根据确定的个数向上传队列添加文件片段,以保证每次能够上传最大个数的文件片段,提高传输效率。
本实施例的文件上传方法,通过对目标文件进行分片得到文件片段,将包括断点位置的文件片段作为起始文件片段,并从起始文件片段开始向服务器续传目标文件,能够实现从断点位置继续上传目标文件,避免上传重复数据,节省对网络资源和服务器存储资源的占用。
在本发明实施例一种可能的实现方式中,在目标文件上传之前,还可以确定允许向不同的服务器上传相同的目标文件,本实施例中,目标文件仅允许向同一个服务器上传一次,以保证同一个服务器中不存在重复的文件,节省服务器的存储资源。通过允许向不同的服务器上传相同的目标文件,能够保证在一个服务器故障时,用户可以从其他服务器获取目标文件,达到文件备份的目的,提升用户体验。
上述文件上传方法,能够根据用户的特殊使用环境条件自动进行性能控制,比如完成hash值的计算、服务端文件的重复比较、文件的断点续传以及网络并发控制等,实现针对不同的文件格式、不同的客户端条件以及不同的网络环境条件等复杂情境下的灵活配置,用户通过简单的文件拖曳、文件选择、文件粘贴等方式即可实现文件上传,操作简单,提升了用户体验。
为了实现上述实施例,本发明还提出一种文件上传装置。
图5为本发明一实施例提出的文件上传装置的结构示意图。
如图5所示,该文件上传装置50包括:验证模块510、添加模块520、获取模块530、判断模块540,以及上传模块550。
其中,验证模块510,用于对需要上传的目标文件进行属性验证。
具体地,验证模块510用于提取目标文件的文件格式和文件大小,形成目标文件的属性信息;其中,文件格式包括文件扩展名、文件MIME类型和/或文件名正则表达式;验证属性信息中的文件格式是否满足预设的文件格式要求,并在文件格式满足预设的文件格式要求时,进一步验证文件大小是否满足预设的文件大小要求;当文件大小满足预设的文件大小要求时,则通过对目标文件的属性验证。
通过从目标文件中提取文件格式和文件大小,并在验证文件格式满足预设的文件格式要求以及文件大小满足预设的文件大小要求时,认为通过对目标文件的属性验证,能够实现目标文件的自动验证,保证所上传文件符合服务器的要求,为成功上传文件奠定基础。
添加模块520,用于当属性验证通过后,将目标文件添加到文件队列中。
获取模块530,用于获取目标文件的第一签名信息。
具体地,获取模块530用于计算目标文件的哈希值作为第一签名信息。
进一步地,获取模块530在计算目标文件的哈希值的同时,还可以从缓存池中读取文件队列中除目标文件之外的文件,并计算文件的哈希值作为文件的第一签名信息,进而利用目标文件的哈希值和每个文件的哈希值,形成哈希队列。
判断模块540,用于在第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断目标文件是否记录有断点位置。
上传模块550,用于在记录有断点位置时,从断点位置开始向服务器续传目标文件。
进一步地,在本发明实施例一种可能的实现方式中,如图6所示,在如图5所示实施例的基础上,判断模块540可以包括:
发送单元541,用于向服务器发送第一请求,第一请求用于请求签名信息列表。
匹配单元542,用于将目标文件的第一签名信息与签名信息列表匹配。
查询单元543,用于当在签名信息列表中未匹配到与第一签名信息一致的签名信息时,根据目标文件的标识,从第一存储空间中查询目标文件的断点信息。
获取单元544,用于在存储有目标文件的断点信息时,从断点信息中获取断点位置。
通过从服务器获取签名信息列表,将获取的目标文件的第一签名信息与签名信息列表进行匹配,并在签名信息列表中不存在与第一签名信息匹配的签名信息时,从第一存储空间中查询目标文件的断点信息,并在查询到目标文件的断点信息时,从断点信息中获取断点位置,以便再次上传目标文件时,从断点位置开始继续上传,避免重复上传目标文件的部分数据,能够节省带宽资源以及服务器的存储空间。
进一步地,在本发明实施例一种可能的实现方式中,如图7所示,在如图5所示实施例的基础上,上传模块550可以包括:
分片单元551,用于将目标文件进行分片,得到目标文件的文件片段。
确定单元552,用于将包括断点位置的文件片段作为起始文件片段。
上传单元553,用于从起始文件片段开始向服务器续传目标文件。
具体地,上传单元553上传目标文件时,可以将将起始文件片段以及后续文件片段添加到上传队列中,再通过上传队列并行向服务器续传目标文件。其中,上传单元553向上传队列中添加文件片段时,可以先获取上传队列的容量,再按照上传队列的容量和文件片段的大小,确定上传的文件片段的个数,进而从起始文件片段开始,根据确定的个数向上传队列添加文件片段。
通过对目标文件进行分片得到文件片段,将包括断点位置的文件片段作为起始文件片段,并从起始文件片段开始向服务器续传目标文件,能够实现从断点位置继续上传目标文件,避免上传重复数据,节省对网络资源和服务器存储资源的占用。
在本发明实施例一种可能的实现方式中,该文件上传装置50在向服务器上传文件时,还可以先确定允许向不同的服务器上传相同的目标文件,其中,目标文件只允许向同一个服务器上传一次,以保证同一个服务器中不存在重复的文件,节省服务器的存储资源。通过允许向不同的服务器上传相同的目标文件,能够保证在一个服务器故障时,用户可以从其他服务器获取目标文件,达到文件备份的目的,提升用户体验。
需要说明的是,前述对文件上传方法实施例的解释说明也适用于本实施例的文件上传装置,其实现原理类似,此处不再赘述。
本实施例的文件上传装置,通过对需要上传的目标文件进行属性验证,当验证通过后将目标文件添加到文件队列中,获取目标文件的第一签名信息,在第一签名信息不存在于从服务器中获取到的签名信息列表中时,进一步判断目标文件是否记录有断点位置,并在记录有断点位置时,从断点位置开始向服务器续传目标文件。通过在文件上传之前先进行属性验证,能够缓解客户端对文件格式判断不准确的问题;通过签名信息判断服务器上是否已经存在目标文件,避免重复上传。而且在上传的过程中允许断点续传,当目标文件不存在于服务器上时,可以尝试获取目标文件的断点位置,获取到断点位置则从断点位置开始向服务器续传目标文件,能够实现目标文件的分片上传,降低对网络带宽的要求,提高文件上传成功率。
为了实现上述实施例,本发明还提出一种计算机设备。
图8为本发明一实施例提出的计算机设备的结构示意图。如图8所示,该计算机设备80包括:存储器801、处理器802及存储在存储器801上并可在处理器802上运行的计算机程序803,其中,处理器802执行计算机程序803时,实现如前述实施例所述的文件上传方法。
为了实现上述实施例,本发明还提出一种计算机程序产品,当计算机程序产品中的指令由处理器执行时,执行如前述实施例所述的文件上传方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的文件上传方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (13)
1.一种文件上传方法,其特征在于,包括:
对需要上传的目标文件进行属性验证;
当属性验证通过后,将所述目标文件添加到文件队列中;
获取所述目标文件的第一签名信息;
在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置;
如果记录有所述断点位置,从所述断点位置开始向所述服务器续传所述目标文件。
2.根据权利要求1所述的方法,其特征在于,所述对需要上传的目标文件进行属性验证,包括:
提取所述目标文件的文件格式和所述文件大小,形成所述目标文件的属性信息;其中,所述文件格式包括文件扩展名、文件MIME类型和/或文件名正则表达式;
验证所述属性信息中的所述文件格式是否满足预设的文件格式要求;
如果所述文件格式满足预设的文件格式要求,则验证所述文件大小是否满足预设的文件大小要求;
如果所述文件大小满足预设的文件大小要求,则通过对所述目标文件的属性验证。
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标文件的第一签名信息,包括:
计算所述目标文件的哈希值作为所述第一签名信息。
4.根据权利要求3所述的方法,其特征在于,还包括:
在计算所述目标文件的哈希值的同时,从缓存池中读取所述文件队列中除所述目标文件之外的文件,并计算所述文件的哈希值作为所述文件的第一签名信息;
利用所述目标文件的哈希值和每个文件的哈希值,形成哈希队列。
5.根据权利要求1所述的方法,其特征在于,所述在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置,包括:
向所述服务器发送第一请求,所述第一请求用于请求所述签名信息列表;
将所述目标文件的第一签名信息与所述签名信息列表匹配;
如果在所述签名信息列表中未匹配到与所述第一签名信息一致的签名信息,则根据所述目标文件的标识,从第一存储空间中查询所述目标文件的断点信息;
如果存储有所述目标文件的所述断点信息,则从所述断点信息中获取所述断点位置。
6.根据权利要求1所述的方法,其特征在于,所述从所述断点位置开始向所述服务器续传所述目标文件,包括:
将所述目标文件进行分片,得到所述目标文件的文件片段;
将包括所述断点位置的文件片段作为起始文件片段;
从所述起始文件片段开始向所述服务器续传所述目标文件。
7.根据权利要求6所述的方法,其特征在于,所述从所述起始文件片段开始向所述服务器续传所述目标文件,包括:
将所述起始文件片段以及后续文件片段添加到上传队列中;
通过所述上传队列并行向所述服务器续传所述目标文件。
8.根据权利要求7所述的方法,其特征在于,所述将所述起始文件片段以及后续文件片段添加到上传队列中,包括:
获取所述上传队列的容量;
按照所述容量和文件片段的大小,确定上传的文件片段的个数;
从所述起始文件片段开始,根据所述个数向所述上传队列添加文件片段。
9.根据权利要求1所述的方法,其特征在于,还包括:
确定允许向不同的服务器上传相同的所述目标文件;其中,所述目标文件只允许向同一个服务器上传一次。
10.一种文件上传装置,其特征在于,包括:
验证模块,用于对需要上传的目标文件进行属性验证;
添加模块,用于当属性验证通过后,将所述目标文件添加到文件队列中;
获取模块,用于获取所述目标文件的第一签名信息;
判断模块,用于在所述第一签名信息不存在于从服务器中获取到的签名信息列表中时,判断所述目标文件是否记录有断点位置;
上传模块,用于在记录有所述断点位置时,从所述断点位置开始向所述服务器续传所述目标文件。
11.一种计算机设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时,实现如权利要求1-9中任一项所述的文件上传方法。
12.一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时,执行如权利要求1-9中任一项所述的文件上传方法。
13.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的文件上传方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711208594.5A CN107707679A (zh) | 2017-11-27 | 2017-11-27 | 文件上传方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711208594.5A CN107707679A (zh) | 2017-11-27 | 2017-11-27 | 文件上传方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107707679A true CN107707679A (zh) | 2018-02-16 |
Family
ID=61185994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711208594.5A Withdrawn CN107707679A (zh) | 2017-11-27 | 2017-11-27 | 文件上传方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707679A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194739A (zh) * | 2018-09-03 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 一种文件上传方法、存储介质和服务器 |
CN109800392A (zh) * | 2019-01-11 | 2019-05-24 | 滨州建筑工程施工图审查中心 | 数字化审图中的多功能图纸上传方法和装置 |
CN110944034A (zh) * | 2019-10-21 | 2020-03-31 | 量子云未来(北京)信息科技有限公司 | 一种网页端断点续传方法、装置、电子设备及存储介质 |
CN111225058A (zh) * | 2020-01-09 | 2020-06-02 | 深圳壹账通智能科技有限公司 | 一种文件上传方法及相关产品 |
CN111314021A (zh) * | 2020-02-07 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 数据传输方法、装置、电子设备及计算机可读存储介质 |
CN112866195A (zh) * | 2020-12-31 | 2021-05-28 | 平安医疗健康管理股份有限公司 | 敏捷数据传输方法、装置、计算机设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893436A (zh) * | 2005-07-01 | 2007-01-10 | 萧学文 | 一种从移动终端上传文件的方法及其*** |
EP2117223A1 (en) * | 2008-04-18 | 2009-11-11 | Nikon Corporation | Image transmission apparatus and image reception apparatus |
CN105227613A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传方法及装置 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
CN103002029B (zh) * | 2012-11-26 | 2016-12-21 | 北京百度网讯科技有限公司 | 上传文件的管理方法、***和客户端 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
-
2017
- 2017-11-27 CN CN201711208594.5A patent/CN107707679A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1893436A (zh) * | 2005-07-01 | 2007-01-10 | 萧学文 | 一种从移动终端上传文件的方法及其*** |
EP2117223A1 (en) * | 2008-04-18 | 2009-11-11 | Nikon Corporation | Image transmission apparatus and image reception apparatus |
CN103002029B (zh) * | 2012-11-26 | 2016-12-21 | 北京百度网讯科技有限公司 | 上传文件的管理方法、***和客户端 |
CN105227613A (zh) * | 2014-06-30 | 2016-01-06 | 北京金山安全软件有限公司 | 一种文件上传方法及装置 |
CN105338090A (zh) * | 2015-11-12 | 2016-02-17 | 浪潮软件集团有限公司 | 一种基于WebSocket的断点续传方法及装置 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194739A (zh) * | 2018-09-03 | 2019-01-11 | 中国平安人寿保险股份有限公司 | 一种文件上传方法、存储介质和服务器 |
CN109800392A (zh) * | 2019-01-11 | 2019-05-24 | 滨州建筑工程施工图审查中心 | 数字化审图中的多功能图纸上传方法和装置 |
CN110944034A (zh) * | 2019-10-21 | 2020-03-31 | 量子云未来(北京)信息科技有限公司 | 一种网页端断点续传方法、装置、电子设备及存储介质 |
CN111225058A (zh) * | 2020-01-09 | 2020-06-02 | 深圳壹账通智能科技有限公司 | 一种文件上传方法及相关产品 |
CN111225058B (zh) * | 2020-01-09 | 2023-11-03 | 深圳壹账通智能科技有限公司 | 一种文件上传方法及相关产品 |
CN111314021A (zh) * | 2020-02-07 | 2020-06-19 | 北京字节跳动网络技术有限公司 | 数据传输方法、装置、电子设备及计算机可读存储介质 |
CN112866195A (zh) * | 2020-12-31 | 2021-05-28 | 平安医疗健康管理股份有限公司 | 敏捷数据传输方法、装置、计算机设备及存储介质 |
CN112866195B (zh) * | 2020-12-31 | 2022-09-16 | 深圳平安医疗健康科技服务有限公司 | 敏捷数据传输方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107707679A (zh) | 文件上传方法及装置 | |
CN102819531B (zh) | 一种云阅读服务***、云阅读服务方法和装置 | |
CN110287383B (zh) | 一种字段信息检验方法及装置 | |
CN111008075B (zh) | 一种负载均衡***、方法、装置、设备及介质 | |
CN108667861A (zh) | 通过浏览器对设备实时监控的方法、***以及服务器 | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN104135520B (zh) | 一种识别安卓终端的方法以及装置 | |
CN103546517B (zh) | 网络信息推送***和方法 | |
CN108710681A (zh) | 文件获取方法、装置、设备及存储介质 | |
CN102752388A (zh) | 基于浏览器的交互***、方法、浏览器和云端服务器 | |
US20180232388A1 (en) | Efficient similarity detection | |
US9519537B2 (en) | Apparatus, system and method for application log data processing | |
US20190253478A1 (en) | Management of asynchronous content post and media file transmissions | |
CN107517239A (zh) | 数据传输方法和装置 | |
CN109766422A (zh) | 信息处理方法、装置及***、存储介质、终端 | |
CN110457628A (zh) | 网页版本校验方法、装置、设备及存储介质 | |
CN109684364A (zh) | 基于用户画像的问题处理方法、装置、设备和存储介质 | |
CN102710799B (zh) | 基于实时消息传递的客户端插件安装提醒***和方法 | |
CN110619571A (zh) | 贷款申请的处理方法及装置 | |
CN110633120A (zh) | 组态软件控件处理方法、装置、服务器、用户终端及*** | |
CN105592130B (zh) | 一种服务部署方法、服务管理方法及装置 | |
CN109783463A (zh) | 文件同步方法、装置及计算机可读存储介质 | |
CN106776504A (zh) | 一种文档格式在线转换方法及*** | |
CN109639807A (zh) | 一种基于slice切片的大数据量遥感影像文件网络传输方法 | |
US10956659B1 (en) | System for generating templates from webpages |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190903 Address after: 100192 Dongsheng Science Park, Zhongguancun, 66 Xixiaokou Road, Haidian District, Beijing Applicant after: Green Bay Network Technology Co., Ltd. Address before: 100089 Beijing Haidian District Xixiaokou Road 66 Zhongguancun Dongsheng Science Park B-6 Building B 5 floors Applicant before: Grass count language (Beijing) Technology Co., Ltd. |
|
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180216 |