CN105635324A - 用于浏览器或服务器的大文件上传、续传方法和装置 - Google Patents
用于浏览器或服务器的大文件上传、续传方法和装置 Download PDFInfo
- Publication number
- CN105635324A CN105635324A CN201610153817.1A CN201610153817A CN105635324A CN 105635324 A CN105635324 A CN 105635324A CN 201610153817 A CN201610153817 A CN 201610153817A CN 105635324 A CN105635324 A CN 105635324A
- Authority
- CN
- China
- Prior art keywords
- file
- fragment
- browser
- sha1
- value
- 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
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供用于浏览器或服务器的大文件上传、续传方法和装置,该用于浏览器的大文件上传、续传方法包括:截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;使用所述文件的SHA1值查询服务器是否已经存在所述文件;若不存在则对所述文件进行分片处理获得多个文件片段,生成各文件片段的验证信息,并将各文件片段及其验证信息执行分片上传;其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行MD5计算而生成的MD5值;若已经存在所述文件但未完成全部上传,则对所述文件的未上传的各文件片段及其验证信息执行分片续传。本实施例的方法优化了SHA1和MD5取样方式,提升了性能。
Description
技术领域
本发明涉及浏览器文件上传,具体涉及一种基于HTML5FileAPI的浏览器大文件上传、续传方法和装置。
背景技术
目前针对大文件上传基本上有四种方案:a)通过安装客户端上传、b)通过安装浏览器插件上传、c)通过Flash上传、d)浏览器通过resumable.is进行上传。
首先描述本申请中涉及的相关技术术语:
浏览器:浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。
HTML5:万维网的核心语言、标准通用标记语言的下一个应用超文本标记语言(HTML)的第五次重大修改。
FileAPI:FileAPI(文件API,API(ApplicationProgrammingInterface,应用程序编程接口)是一套强大的API,它可以让开发者处理来自用户文件系统的文件,并且可以让开发者在Web应用程序里使用这些文件,所有这些事情都在本地处理,不需要在服务器上处理。
SHA1:安全哈希算法(SecureHashAlgorithm)主要适用于数字签名标准里面定义的数字签名算法。对于长度小于2^64位的消息,SHA1会产生一个160位的消息摘要。当接收到消息的时候,这个消息摘要可以用来验证数据的完整性。SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。
MD5:信息摘要算法第五版(Message-DigestAlgorithm5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一,主流编程语言普遍已有MD5实现。将数据(如汉字)运算为另一固定长度值,是杂凑算法的基础原理,MD5的前身有MD2、MD3和MD4。
其中方案a)和方案b)均需要用户安装额外的应用才能支持上传,且需要对整个文件行行SHA1运算,对每一个完整的文件片段进行MD5运算,极大消耗量服务端和客户端的资源,加大了服务端负载。c)方案需要浏览器支持Flash,而Flash已经是过时的技术,各大互联网企业也均开始弃用。d)方案中对文件的索引唯一性、文件分片正确性无法保证,同时也无法做到文件的快速上传。
具体地,在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
a)方案和b)方案需要通过安装额外应用才能完成文件的索引唯一和文件内容的正确性验证,技术相对臃肿。方案a)中对文件SHA1和文件片段MD5取样方案相对较为浪费资源。
c)方案需要通过Flash支持才能完成大文件上传,而Flash对资源消耗极高,已经是一种过时的技术,而且其开发维护成本也不低。
d)方案虽然采用了FileAPI来进行文件的续传和分片上传,但是该方案中采用文件名和文件大小作为文件的唯一索引,重复率较高,无法用做支持文件的快速上传,同时该方案中无法对文件数据的正确性做验证,不能保证用户所上传文件的数据的完整性。
发明内容
本发明实施例的目的是提供一种用于浏览器或服务器的大文件上传、续传方法和装置,以降低资源消耗,实现快速上传并保证文件数据的完整性。
一方面,本发明实施例提供了一种用于浏览器的大文件上传、续传方法,其包括:截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;使用所述文件的SHA1值查询服务器是否已经存在所述文件;若不存在则对所述文件进行分片处理获得多个文件片段,生成各文件片段的验证信息,并将各文件片段及其验证信息执行分片上传;其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行信息摘要算法MD5计算而生成的MD5值;若已经存在所述文件但未完成全部上传,则对所述文件的未上传的各文件片段及其验证信息执行分片续传。
另一方面,本发明实施例提供了一种浏览器,其包括:SHA1计算模块,用于截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;
文件查询模块,用于使用所述文件的SHA1值查询服务器是否已经存在所述文件;
上传续传模块,其包括文件分割子模块、信息摘要算法MD5计算子模块、分片上传子模块和分片续传子模块;
所述文件分割子模块,用于若所述服务器上不存在所述文件则对所述文件进行分片处理获得多个文件片段;
所述MD5计算子模块,用于生成各文件片段的验证信息,其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行MD5计算而生成的MD5值;
所述分片上传子模块,用于将各文件片段及其验证信息执行分片上传;
所述分片续传子模块,用于若已经存在所述文件但未完成全部上传,则对所述文件的未上传的各文件片段及其验证信息执行分片续传。
又一方面,本发明实施例提供了一种用于服务器的大文件上传、续传方法,其包括:
接收浏览器发送的文件查询请求,所述文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,所述SHA1值是所述浏览器通过截取所述待查询文件的部分内容进行SHA1计算而生成的;
向所述浏览器返回所述文件是否存在的查询结果;
接收所述浏览器在查询结果为不存在时分片上传的多个分片数据,所述分片数据包括文件片段及其信息摘要算法MD5值;
截取所述文件片段的部分内容进行MD5计算,并将计算得到的MD5值与接收到的MD5值进行对比验证;
将验证结果返回给所述浏览器;
接收所述浏览器在查询结果为所述文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
最后一方面,本发明实施例提供了一种服务器,其包括:接收模块,用于接收浏览器发送的文件查询请求,所述文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,所述SHA1值是所述浏览器通过截取所述待查询文件的部分内容进行SHA1计算而生成的;发送模块,用于向所述浏览器返回所述文件是否存在的查询结果;所述接收模块,还用于接收所述浏览器在查询结果为不存在时上传的多个分片数据,所述分片数据包括文件片段及其信息摘要算法MD5值;验证模块,用于截取所述文件片段的部分内容进行MD5计算,并将计算得到的MD5与接收到的MD5值进行对比验证;所述发送模块,还用于将验证结果返回给所述浏览器;所述接收模块,还用于接收所述浏览器在查询结果为所述文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
上述技术方案具有如下有益效果:
上述技术方案基于B/S架构开发,利用浏览器本身对FileAPI的支持来完成此功能,更轻量级,开发维护成本也更低。
上述技术方案采用的是HTML5的FileAPI,是一种新技术,目前主流浏览器的支持近乎完善,在手机等移动设备上的支持也近乎完善,其使用场景更为多元化。
上述技术方案不需要额外的应用,减少了开发成本,也减少了用户的操作流程。
上述技术方案不需要浏览器对Flash的支持,采用新技术,可以使用在手机等移动设备,使用场景更多元化。
上述技术方案采用文件部分内容计算SHA1作为文件的索引,支持文件快速上传,对文件分块的部分内容进行MD5验证,保证文件数据的完整性。
上述技术方案优化SHA1和MD5取样方式,能够提升性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一的用于浏览器的大文件上传、续传方法的流程图;
图2A-图2B是本发明实施例的文件SHA1采样和文件分块MD5采样逻辑图;
图3是本发明实施例二的用于服务器的大文件上传、续传方法的流程图;
图4是本发明实施例三的浏览器功能框图;
图5是本发明实施例四的服务器的功能框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的技术方案的总体构思是:用户选择文件后,首先对文件进行SHA1计算,得到文件SHA1;使用文件SHA1查询服务器是否已经存在该文件,若不存在则进入上传流程,若已经存在则判断是否已经完成了该文件的上传,若已完成上传,则添加该条数据完成文件快速上传。若未完成上传则进入续传流程。
上传流程需要通过FileAPI对文件进行指定大小分割,对分割后的分片进行MD5运算,然后将该分片序号、分片内容以及MD5发送给服务器进行分片上传,服务器对分片进行MD5计算并进行对比以确认分片信息的完整性,如果无法验证则重新上传该分片至正确验证,待所有分片上传完毕,将所有分片序号及对应的MD5发送给服务器进行再次验证,若验证通过则合并文件,若不通过,则将不通过的分片信息告知浏览器重新上传对应分片至所有分片通过验证并合并,完成文件上传。续传流程仅需要对未上传分片进行MD5计算,其余流程与上传流程一致。
实施例一
图1是本发明的实施例一的用于浏览器的大文件上传、续传方法的流程图。该浏览器可以是一种基于HTML5FileAPI的浏览器,参阅图1,其包括如下步骤:
步骤110:截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值。
本步骤采用SHA1算法的原因是SHA1是目前应用相对广泛的算法,且对于浏览器而言,其性能相对较低,若采用其他算法,可能会因为计算复杂度问题而降低整体性能。截取文件的部分内容进行计算而不是截取整个文件,有利于降低服务端和客户端的资源消耗量,减轻服务端负载。
步骤120:使用该文件的SHA1值查询服务器是否已经存在所述文件,若不存在则对该文件进行分片处理获得多个文件片段,生成各文件片段的验证信息,并将各文件片段及其验证信息执行分片上传;其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行MD5计算而生成的MD5值。本步骤可通过FileAPI对所述文件进行指定大小分割。截取文件片段的部分内容进行计算而不是截取整个文件片段,有利于降低服务端和客户端的资源消耗量,减轻服务端负载。并且MD5在本实施中兼顾满足了性能和校验唯一性要求。
具体地,本步骤可以将各所述文件片段的序号、文件片段的内容以及MD5值发送给服务器进行分片上传和验证。
较佳地,上述方法还包括:重新上传验证失败的文件片段直至其被正确验证;待所有文件片段上传完毕后,将所有文件片段的序号及对应的MD5值发送给服务器进行再次验证。
在本实施例中,多次校验是为了保证数据的完整性,因为大文件上传过程相对较长,在开始上传到完成上传中间可能会发生一些不可预知的问题而导致服务器数据不健全,故在上传完所有分片(文件片段)后需再次验证确认,若校验出故障分片也可及时补传以保证用户数据的完整性。
较佳地,本实施例可截取该目标文件首尾各预设大小的数据进行SHA1计算。较佳地,本实施例可截取该目标文件片段首尾各预设大小的数据进行MD5计算。文件或文件片段首尾的信息更具有代表性,同时采集首尾两处信息也可以提升对文件采样的精确性,其算法也会相对简单,避免性能浪费。
图2A-图2B是本发明的实施例的文件SHA1采样和文件分块MD5采样逻辑图。本发明的实施例对文件的SHA1和文件片段MD5算法取样进行优化,对文件SHA1计算仅需要截取文件首尾各64K数据进行计算,对文件片段进行MD5计算仅需截取文件片段首尾各64K数据进行计算,这样可以在保证文件唯一性和正确性的基础上最大程度优化性能,节省了浏览器和服务器的资源开销,对成本控制和用户体验有了极大的提升。需要注意的是,64K采样数据只是一个示例,可根据实际需求在文件精度和性能之间权衡,建议16K至128K,过小容易导致数据采样不具有代表性,过大或导致性能(资源)浪费。
本实施例的方法采用文件的部分内容(首尾各预设大小的内容)计算SHA1作为文件的索引,从而可支持文件快速上传,对文件分块(文件片段)的部分内容通过服务器进行MD5验证,从而有利于保证文件数据的完整性。另外,本实施例的方法优化了SHA1和MD5取样(采样)方式,提升了性能。优化采样是指通过文件首尾采样和文件片段首尾采样用以代替整个文件和整个文件片段的计算,从而减小计算的数据量,提升计算性能,避免资源浪费。
实施例二
图3是本发明实施例二的用于服务器的大文件上传、续传方法的流程图。参照图3,其包括如下步骤:
步骤210:接收浏览器发送的文件查询请求,文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,该SHA1值是该浏览器通过截取待查询文件的部分内容进行SHA1计算而生成的。
步骤220:向浏览器返回文件是否存在的查询结果。
步骤230:接收浏览器在查询结果为不存在时分片上传的多个分片数据,该分片数据包括文件片段及其信息摘要算法MD5值。较佳地,分片数据可包括文件片段的序号、文件片段的内容以及与该文件片段对应的信息摘要算法MD5值。
步骤240:截取文件片段的部分内容进行MD5计算,并将计算得到的MD5值与接收到的MD5值进行对比验证;截取文件片段的部分内容进行计算而不是截取整个文件片段,有利于降低服务端和客户端的资源消耗量,减轻服务端负载。
步骤250:将验证结果返回给浏览器。
步骤260:接收浏览器在查询结果为该文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
进一步地,上述方法还可包括如下步骤:接收浏览器在所有文件片段上传完毕后发送的再次验证请求,再次验证请求中包括所有文件片段的序号及与所有文件片段相对应的MD5值;若再次验证通过则对各文件片段进行合并处理;若再次验证不通过,则将未通过验证的文件片段的信息发送给浏览器,使浏览器重新上传对应的文件片段,直至所有文件片段通过验证并完成合并处理。这里未通过验证的文件片段的信息包括但不限于序列号,还可包含一些验证消息和详细的错误消息,以提供给浏览器做进一步处理。
较佳地,步骤240中可截取文件片段首尾各预设大小的数据进行MD5计算。通过文件片段首尾采样来代替整个文件片段的计算,从而减小计算的数据量,提升计算性能。
本实施例的方法不需要额外的应用,减少了开发成本,也减少了用户的操作流程。本实施例的方法对文件片段的部分内容进行MD5验证,从而有利于保证文件数据的完整性。并且本实施例的方法截取文件片段首尾各预设大小的数据进行MD5计算,这种MD5取样方式有利于提升性能。
实施例三
图4是本发明实施例三的浏览器功能框图。该浏览器对应执行实施例一中的方法,如图4所示,该浏览器包括:SHA1计算模块310,用于截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;文件查询模块320,用于使用文件的SHA1值查询服务器是否已经存在文件;上传续传模块330,其包括文件分割子模块331、MD5计算子模块332、分片上传子模块333和分片续传子模块334;文件分割子模块331,用于若服务器上不存在文件则对文件进行分片处理获得多个文件片段,MD5计算子模块332,用于生成各文件片段的验证信息,其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行MD5计算而生成的MD5值;分片上传子模块333,用于将各文件片段及其验证信息执行分片上传;分片续传子模块334,用于若已经存在文件但未完成全部上传,则对文件的未上传的各文件片段及其验证信息执行分片续传。
较佳地,该SHA1计算模块310,可以用于截取文件首尾各预设大小的数据(例如64K)进行SHA1计算;该MD5计算子模块332,可以用于截取文件片段首尾各预设大小的数据(例如64K)进行MD5计算。通过文件首尾采样和文件片段首尾采样用以代替整个文件和整个文件片段的计算,从而可减小计算的数据量,提升计算性能。需要注意的是,64K采样数据只是一个示例,可根据实际需求在文件精度和性能之间权衡,建议16K至128K,过小容易导致数据采样不具有代表性,过大或导致性能(资源)浪费。
本实施例的浏览器采用文件部分内容(首尾各预设大小的内容)计算SHA1作为文件的索引,从而可支持文件快速上传,对文件分块(文件片段)的部分内容(文件片段首尾各预设大小的数据)通过服务器进行MD5验证,从而有利于保证文件数据的完整性。另外,本实施例的浏览器优化了SHA1和MD5取样方式,提升了性能。
实施例四
图5是本发明实施例四的服务器的功能框图。该服务器对应执行实施例二中的方法,参阅图5,其包括:接收模块410,用于接收浏览器发送的文件查询请求,该文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,该SHA1值是所述浏览器通过截取待查询文件的部分内容进行SHA1计算而生成的;发送模块420,用于向浏览器返回文件是否存在的查询结果;接收模块410,还用于接收该浏览器在查询结果为不存在时上传的多个分片数据,该分片数据包括文件片段及其信息摘要算法MD5值。验证模块430,用于截取文件片段的部分内容进行MD5计算,并将计算到的MD5值与接收到的MD5值进行对比验证;发送模块420,还用于将验证结果返回给浏览器;接收模块410,还用于接收该浏览器在查询结果为所述文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
进一步地,接收模块410,还可用于接收浏览器在所有文件片段上传完毕后发送的再次验证请求,该再次验证请求中包括所有文件片段的序号及与所有文件片段分别对应的MD5值;服务器还包括合并模块440,其用于若再次验证通过则对各文件片段进行合并处理;发送模块420,还用于若再次验证不通过,则将未通过验证的文件片段的信息发送给浏览器,使浏览器重新上传对应的文件片段,直至所有文件片段通过验证并完成合并处理。这里未通过验证的文件片段的信息包括但不限于序列号,还可包含一些验证消息和详细的错误消息,以提供给浏览器做进一步处理。
较佳地,验证模块430,具体可用于截取文件片段首尾各预设大小的数据进行MD5计算。
本实施例的服务器对文件片段的部分内容进行MD5验证,从而有利于保证文件数据的完整性。并且本实施例的服务器截取文件片段首尾各预设大小的数据进行MD5计算,这种MD5取样方式有利于提升性能。
本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC中,ASIC可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种用于浏览器的大文件上传、续传方法,其特征在于,包括:
截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;
使用所述文件的SHA1值查询服务器是否已经存在所述文件;
若不存在则对所述文件进行分片处理获得多个文件片段,生成各文件片段的验证信息,并将各文件片段及其验证信息执行分片上传;其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行信息摘要算法MD5计算而生成的MD5值;
若已经存在所述文件但未完成全部上传,则对所述文件的未上传的各文件片段及其验证信息执行分片续传。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
重新上传验证失败的文件片段直至其被正确验证;
待所有文件片段上传完毕后,将所有文件片段的序号及对应的MD5值发送给服务器进行再次验证。
3.根据权利要求1或2所述的方法,其特征在于,截取所述文件首尾各预设大小的数据进行SHA1计算;和/或,截取所述文件片段首尾各预设大小的数据进行MD5计算。
4.一种浏览器,其特征在于,包括:
SHA1计算模块,用于截取文件的部分内容进行安全哈希算法SHA1计算,得到文件的SHA1值;
文件查询模块,用于使用所述文件的SHA1值查询服务器是否已经存在所述文件;
上传续传模块,其包括文件分割子模块、信息摘要算法MD5计算子模块、分片上传子模块和分片续传子模块;
所述文件分割子模块,用于若所述服务器上不存在所述文件则对所述文件进行分片处理获得多个文件片段;
所述MD5计算子模块,用于生成各文件片段的验证信息,其中,每个文件片段的验证信息包括通过截取该文件片段的部分内容执行MD5计算而生成的MD5值;
所述分片上传子模块,用于将各文件片段及其验证信息执行分片上传;
所述分片续传子模块,用于若已经存在所述文件但未完成全部上传,则对所述文件的未上传的各文件片段及其验证信息执行分片续传。
5.根据权利要求4所述的浏览器,其特征在于,所述分片上传子模块还用于:重新上传所述服务器验证失败的文件片段直至其被正确验证;以及,待所有文件片段上传完毕后,将所有文件片段的序号及对应的MD5值发送给所述服务器进行再次验证。
6.根据权利要求4或5所述的浏览器,其特征在于,所述SHA1计算模块,用于截取所述文件首尾各预设大小的数据进行SHA1计算;所述MD5计算子模块,用于截取所述文件片段首尾各预设大小的数据进行MD5计算。
7.一种用于服务器的大文件上传、续传方法,其特征在于,包括:
接收浏览器发送的文件查询请求,所述文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,所述SHA1值是所述浏览器通过截取所述待查询文件的部分内容进行SHA1计算而生成的;
向所述浏览器返回所述文件是否存在的查询结果;
接收所述浏览器在查询结果为不存在时分片上传的多个分片数据,所述分片数据包括文件片段及其信息摘要算法MD5值;截取所述文件片段的部分内容进行MD5计算,并将计算得到的MD5值与接收到的MD5值进行对比验证;将验证结果返回给所述浏览器;
接收所述浏览器在查询结果为所述文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
8.根据权利要求7所述的方法,其特征在于,还包括:
接收所述浏览器在所有文件片段上传完毕后发送的再次验证请求,所述再次验证请求中包括所有文件片段的序号及与所有文件片段分别对应的MD5值;
若再次验证通过则对各文件片段进行合并处理;
若所述再次验证不通过,则将未通过验证的文件片段的信息发送给所述浏览器,使所述浏览器重新上传对应的文件片段,直至所有文件片段通过验证并完成合并处理。
9.一种服务器,其特征在于,包括:
接收模块,用于接收浏览器发送的文件查询请求,所述文件查询请求中包含待查询文件的安全哈希算法SHA1值;其中,所述SHA1值是所述浏览器通过截取所述待查询文件的部分内容进行SHA1计算而生成的;
发送模块,用于向所述浏览器返回所述文件是否存在的查询结果;
所述接收模块,还用于接收所述浏览器在查询结果为不存在时上传的多个分片数据,所述分片数据包括文件片段及其信息摘要算法MD5值;
验证模块,用于截取所述文件片段的部分内容进行MD5计算,并将计算得到的MD5与接收到的MD5值进行对比验证;
所述发送模块,还用于将验证结果返回给所述浏览器;
所述接收模块,还用于接收所述浏览器在查询结果为所述文件已经存在但未完成全部上传时,分片续传的相应文件片段及其MD5值。
10.根据权利要求9所述的服务器,其特征在于:
所述接收模块,还用于接收所述浏览器在所有文件片段上传完毕后发送的再次验证请求,所述再次验证请求中包括所有文件片段的序号及与所有文件片段分别对应的MD5值;
合并模块,用于若再次验证通过则对各文件片段进行合并处理;
所述发送模块,还用于若所述再次验证不通过,则将未通过验证的文件片段的信息发送给所述浏览器,使所述浏览器重新上传对应的文件片段,直至所有文件片段通过验证并完成合并处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153817.1A CN105635324A (zh) | 2016-03-17 | 2016-03-17 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610153817.1A CN105635324A (zh) | 2016-03-17 | 2016-03-17 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105635324A true CN105635324A (zh) | 2016-06-01 |
Family
ID=56049794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610153817.1A Pending CN105635324A (zh) | 2016-03-17 | 2016-03-17 | 用于浏览器或服务器的大文件上传、续传方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105635324A (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106303629A (zh) * | 2016-08-10 | 2017-01-04 | 天脉聚源(北京)传媒科技有限公司 | 一种上传盒子节目的方法、装置和系统 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN107330327A (zh) * | 2017-06-02 | 2017-11-07 | 北京奇虎科技有限公司 | 感染文件检测方法、服务器、处理方法、装置和检测系统 |
CN108093034A (zh) * | 2017-12-06 | 2018-05-29 | 深圳云天励飞技术有限公司 | 断点续传方法及装置、电子设备和计算机可读存储介质 |
CN109361772A (zh) * | 2018-12-13 | 2019-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储系统中文件上传方法及装置 |
CN109417445A (zh) * | 2016-06-30 | 2019-03-01 | 卡姆鲁普股份有限公司 | 射频通信系统和方法 |
CN109819056A (zh) * | 2019-03-28 | 2019-05-28 | 山东浪潮云信息技术有限公司 | 一种基于数据流和哈希比对的文件上传方法及系统 |
CN110474937A (zh) * | 2018-05-09 | 2019-11-19 | 深圳企业云科技股份有限公司 | 超大文件分段续传方法及其系统 |
CN110650207A (zh) * | 2019-09-29 | 2020-01-03 | 中电福富信息科技有限公司 | 一种超大视频文件断点上传的方法 |
CN110944034A (zh) * | 2019-10-21 | 2020-03-31 | 量子云未来(北京)信息科技有限公司 | 一种网页端断点续传方法、装置、电子设备及存储介质 |
CN111031110A (zh) * | 2019-11-29 | 2020-04-17 | 山东英信计算机技术有限公司 | 一种文件上传方法、装置及电子设备和存储介质 |
CN111193786A (zh) * | 2019-12-23 | 2020-05-22 | 北京航天云路有限公司 | 基于Blob对象分段读取大文件提高上传效率的方法 |
CN111209254A (zh) * | 2020-01-10 | 2020-05-29 | Oppo(重庆)智能科技有限公司 | 文件指纹获取方法、装置、电子设备以及存储介质 |
CN111327694A (zh) * | 2020-02-10 | 2020-06-23 | 北京达佳互联信息技术有限公司 | 文件上传方法、装置、存储介质及电子设备 |
CN111355793A (zh) * | 2020-02-26 | 2020-06-30 | 山东爱城市网信息技术有限公司 | 一种基于HTML5和Python的大文件上传方法 |
CN111835867A (zh) * | 2020-07-28 | 2020-10-27 | 浪潮云信息技术股份公司 | 文件上传方法及系统 |
CN111970357A (zh) * | 2020-08-14 | 2020-11-20 | 北京金和网络股份有限公司 | 视频上传方法、装置及系统 |
CN112532740A (zh) * | 2020-12-11 | 2021-03-19 | 平安科技(深圳)有限公司 | 文件上传方法和装置、文件校验方法和装置 |
CN112631514A (zh) * | 2020-12-17 | 2021-04-09 | 龙存科技(北京)股份有限公司 | 一种应用于云盘系统中的文件去重方法、系统 |
CN114567506A (zh) * | 2022-03-09 | 2022-05-31 | 平安科技(深圳)有限公司 | 文件上传的方法、装置、计算机设备及存储介质 |
CN116032913A (zh) * | 2022-10-12 | 2023-04-28 | 浪潮云信息技术股份公司 | 基于分布式对象存储的文件上传方法及系统 |
CN116781685A (zh) * | 2023-06-25 | 2023-09-19 | 三峡高科信息技术有限责任公司 | 一种浏览器大文件上传方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288593A1 (en) * | 2006-06-12 | 2007-12-13 | Lucent Technologies Inc. | Chargeable peer-to-peer file download system |
CN101699822A (zh) * | 2009-08-06 | 2010-04-28 | 腾讯科技(深圳)有限公司 | 一种文件上传方法、装置和海量存储系统 |
CN102438004A (zh) * | 2011-09-05 | 2012-05-02 | 深圳创维数字技术股份有限公司 | 获取媒体文件的元数据信息的方法、系统及多媒体播放器 |
CN102571709A (zh) * | 2010-12-16 | 2012-07-11 | 腾讯科技(北京)有限公司 | 文件上传的方法、客户端、服务器及系统 |
CN103581230A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 文件传输系统和方法、接收端、发送端 |
CN103841144A (zh) * | 2012-11-23 | 2014-06-04 | 中兴通讯股份有限公司 | 云存储系统、方法、用户端及云存储服务器 |
CN105208108A (zh) * | 2015-08-31 | 2015-12-30 | 北京奇虎科技有限公司 | Web环境下的文件上传/下载方法及系统、服务器、客户端 |
-
2016
- 2016-03-17 CN CN201610153817.1A patent/CN105635324A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070288593A1 (en) * | 2006-06-12 | 2007-12-13 | Lucent Technologies Inc. | Chargeable peer-to-peer file download system |
CN101699822A (zh) * | 2009-08-06 | 2010-04-28 | 腾讯科技(深圳)有限公司 | 一种文件上传方法、装置和海量存储系统 |
CN102571709A (zh) * | 2010-12-16 | 2012-07-11 | 腾讯科技(北京)有限公司 | 文件上传的方法、客户端、服务器及系统 |
CN102438004A (zh) * | 2011-09-05 | 2012-05-02 | 深圳创维数字技术股份有限公司 | 获取媒体文件的元数据信息的方法、系统及多媒体播放器 |
CN103581230A (zh) * | 2012-07-26 | 2014-02-12 | 深圳市腾讯计算机系统有限公司 | 文件传输系统和方法、接收端、发送端 |
CN103841144A (zh) * | 2012-11-23 | 2014-06-04 | 中兴通讯股份有限公司 | 云存储系统、方法、用户端及云存储服务器 |
CN105208108A (zh) * | 2015-08-31 | 2015-12-30 | 北京奇虎科技有限公司 | Web环境下的文件上传/下载方法及系统、服务器、客户端 |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109417445A (zh) * | 2016-06-30 | 2019-03-01 | 卡姆鲁普股份有限公司 | 射频通信系统和方法 |
CN106303629A (zh) * | 2016-08-10 | 2017-01-04 | 天脉聚源(北京)传媒科技有限公司 | 一种上传盒子节目的方法、装置和系统 |
CN107172131A (zh) * | 2017-04-26 | 2017-09-15 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN107172131B (zh) * | 2017-04-26 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 文件上传方法和装置 |
CN107330327A (zh) * | 2017-06-02 | 2017-11-07 | 北京奇虎科技有限公司 | 感染文件检测方法、服务器、处理方法、装置和检测系统 |
CN107330327B (zh) * | 2017-06-02 | 2021-05-18 | 北京奇虎科技有限公司 | 感染文件检测方法、服务器、处理方法、装置和检测系统 |
CN108093034A (zh) * | 2017-12-06 | 2018-05-29 | 深圳云天励飞技术有限公司 | 断点续传方法及装置、电子设备和计算机可读存储介质 |
CN110474937A (zh) * | 2018-05-09 | 2019-11-19 | 深圳企业云科技股份有限公司 | 超大文件分段续传方法及其系统 |
CN109361772A (zh) * | 2018-12-13 | 2019-02-19 | 浪潮电子信息产业股份有限公司 | 一种分布式对象存储系统中文件上传方法及装置 |
CN109819056A (zh) * | 2019-03-28 | 2019-05-28 | 山东浪潮云信息技术有限公司 | 一种基于数据流和哈希比对的文件上传方法及系统 |
CN110650207A (zh) * | 2019-09-29 | 2020-01-03 | 中电福富信息科技有限公司 | 一种超大视频文件断点上传的方法 |
CN110944034A (zh) * | 2019-10-21 | 2020-03-31 | 量子云未来(北京)信息科技有限公司 | 一种网页端断点续传方法、装置、电子设备及存储介质 |
CN111031110A (zh) * | 2019-11-29 | 2020-04-17 | 山东英信计算机技术有限公司 | 一种文件上传方法、装置及电子设备和存储介质 |
CN111031110B (zh) * | 2019-11-29 | 2023-01-24 | 山东英信计算机技术有限公司 | 一种文件上传方法、装置及电子设备和存储介质 |
CN111193786A (zh) * | 2019-12-23 | 2020-05-22 | 北京航天云路有限公司 | 基于Blob对象分段读取大文件提高上传效率的方法 |
CN111209254A (zh) * | 2020-01-10 | 2020-05-29 | Oppo(重庆)智能科技有限公司 | 文件指纹获取方法、装置、电子设备以及存储介质 |
CN111327694A (zh) * | 2020-02-10 | 2020-06-23 | 北京达佳互联信息技术有限公司 | 文件上传方法、装置、存储介质及电子设备 |
CN111327694B (zh) * | 2020-02-10 | 2022-07-08 | 北京达佳互联信息技术有限公司 | 文件上传方法、装置、存储介质及电子设备 |
CN111355793A (zh) * | 2020-02-26 | 2020-06-30 | 山东爱城市网信息技术有限公司 | 一种基于HTML5和Python的大文件上传方法 |
CN111835867A (zh) * | 2020-07-28 | 2020-10-27 | 浪潮云信息技术股份公司 | 文件上传方法及系统 |
CN111970357A (zh) * | 2020-08-14 | 2020-11-20 | 北京金和网络股份有限公司 | 视频上传方法、装置及系统 |
CN112532740A (zh) * | 2020-12-11 | 2021-03-19 | 平安科技(深圳)有限公司 | 文件上传方法和装置、文件校验方法和装置 |
CN112631514A (zh) * | 2020-12-17 | 2021-04-09 | 龙存科技(北京)股份有限公司 | 一种应用于云盘系统中的文件去重方法、系统 |
CN114567506A (zh) * | 2022-03-09 | 2022-05-31 | 平安科技(深圳)有限公司 | 文件上传的方法、装置、计算机设备及存储介质 |
CN114567506B (zh) * | 2022-03-09 | 2024-03-19 | 平安科技(深圳)有限公司 | 文件上传的方法、装置、计算机设备及存储介质 |
CN116032913A (zh) * | 2022-10-12 | 2023-04-28 | 浪潮云信息技术股份公司 | 基于分布式对象存储的文件上传方法及系统 |
CN116781685A (zh) * | 2023-06-25 | 2023-09-19 | 三峡高科信息技术有限责任公司 | 一种浏览器大文件上传方法 |
CN116781685B (zh) * | 2023-06-25 | 2024-02-13 | 三峡高科信息技术有限责任公司 | 一种浏览器大文件上传方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105635324A (zh) | 用于浏览器或服务器的大文件上传、续传方法和装置 | |
CN112866310B (zh) | Cdn回源的校验方法和校验服务器、cdn集群 | |
US8332952B2 (en) | Time window based canary solutions for browser security | |
AU2010221620B2 (en) | Content rendering on a computer | |
CN109361754A (zh) | 一种基于浏览器的文件传输方法及装置 | |
CN102307210A (zh) | 一种数据下载系统及其数据管理和下载方法 | |
US11463753B2 (en) | Method and apparatus for downloading resources | |
US11080322B2 (en) | Search methods, servers, and systems | |
US9178860B2 (en) | Out-of-path, content-addressed writes with untrusted clients | |
CN109815112B (zh) | 基于功能测试的数据调试方法、装置及终端设备 | |
CN110661826A (zh) | 代理服务器端处理网络请求的方法和代理服务器 | |
CN112187921B (zh) | 一种对象文件下载方法、装置、系统、服务器和存储介质 | |
CN112785408A (zh) | 基于哈希的对账方法及装置 | |
CN103024015B (zh) | 一种基于Flex的跨平台的浏览器端校验md5值上传文件的方法 | |
CN110188038B (zh) | 一种参数校验方法及装置、校验架构 | |
CN113452733A (zh) | 文件下载方法和装置 | |
CN107633102A (zh) | 一种读取元数据的方法、装置、系统及设备 | |
US11539711B1 (en) | Content integrity processing on browser applications | |
CN102970380A (zh) | 获取云存储文件的媒体数据的方法以及云存储服务器 | |
CN110943876A (zh) | Url状态检测方法、装置、设备和系统 | |
CN111245949A (zh) | 文件归档传输方法、装置及设备 | |
US11275867B1 (en) | Content integrity processing | |
US9838494B1 (en) | Reducing retrieval times for compressed objects | |
US10021207B1 (en) | Architecture for proactively providing bundled content items to client devices | |
CN114172998B (zh) | 一种文件传输方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160601 |
|
RJ01 | Rejection of invention patent application after publication |