CN105897825A - 异步传输文件的方法及系统 - Google Patents

异步传输文件的方法及系统 Download PDF

Info

Publication number
CN105897825A
CN105897825A CN201510809846.4A CN201510809846A CN105897825A CN 105897825 A CN105897825 A CN 105897825A CN 201510809846 A CN201510809846 A CN 201510809846A CN 105897825 A CN105897825 A CN 105897825A
Authority
CN
China
Prior art keywords
file
burst
context
transmitted
upload
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
CN201510809846.4A
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.)
LeTV Cloud Computing Co Ltd
Original Assignee
LeTV Cloud Computing 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 LeTV Cloud Computing Co Ltd filed Critical LeTV Cloud Computing Co Ltd
Priority to CN201510809846.4A priority Critical patent/CN105897825A/zh
Publication of CN105897825A publication Critical patent/CN105897825A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly

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

本发明实施例提供了一种异步传输文件的方法及系统。该方法包括:第一端向第二端发送至少与待传输文件大小和分片大小有关的OPTIONS请求;第一端接收第二端确定的相应的文件分片信息,文件分片信息至少包括多个分片内容范围的待传输列表;第一端向第二端发送用于待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;第一端根据接收到所述第二端的反馈的更新的文件分片信息确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求。本实施方式可以通过对上传失败的分片文件进行续传,保证了文件传输的准确性和可靠性;仅将上传失败的分片文件进行续传,提高了文件上传的速度;最大限度地利用了带宽。

Description

异步传输文件的方法及系统
技术领域
本发明涉及传输文件的技术,特别涉及一种异步传输文件的方法及系统。
背景技术
文件上传的操作是互联网中常见的操作之一。一般来说,利用Web将文件上传至服务器的方法可以使用表单模式。具体可以将上传类型定义为POST,编码方式为multipart/form-data,然后填充数据至请求中即可。这样的请求一般是流式的同步类型的上传请求,一次只需开启一个线程。
如果采用异步的形式,开启多线程进行上传,可以最大限度地提高上传的速度和上传效率。现有最优的技术形式为利用XMLHttpRequest的FormData的形式进行异步上传。具体可以利用FormData对象,通过JavaScript用一些键值对模拟一系列表单控件,最后利用XMLHttpRequest的send()方法来异步的提交FormData中的二进制数据。然而,异步上传虽然速度快,但如果上传过程中出现失败,就无法进行续传或者检测上传进度和上传完整性。当文件非常大的时候,之前所传输的数据就会丢失,浪费上传的时间。
因此,需要提出一种高效、可靠的异步传输数据的方法解决上述问题。
发明内容
本发明实施例提供了一种异步传输文件的方法及系统,用以解决现有技术中无法进行续传或者检测上传进度和上传完整性。当文件非常大的时候,之前所传输的数据就会丢失,浪费上传的时间的问题。
本发明实施例提供了一种异步传输文件的方法。该方法用于第一端和第二端之间的包含多个分片的文件的传输。该方法包括:
第一端向第二端发送至少与待传输文件大小和分片大小有关的OPTIONS请求;
所述第一端接收所述第二端根据所述OPTIONS请求确定的相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表;
所述第一端向所述第二端发送用于所述待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;
所述第一端根据接收到所述第二端的反馈的更新的文件分片信息确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求,所述更新的文件分片信息为:所述第二端统计的异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息。
本发明实施例提供了另一种异步传输文件的方法。该方法用于第一端和第二端之间的包含多个分片的文件的传输。该方法包括:
第二端接收第一端发送的至少与待传输文件大小和分片大小有关的OPTIONS请求;
所述第二端根据所述OPTIONS请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表;
所述第二端根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传;
所述第二端统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息;
当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,所述第二端只接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
本发明实施例还提供了一种异步传输文件的系统。该系统用于传输包含多个分片的文件。该系统包括:第一端,所述第一端包括:
OPTIONS请求单元,配置为向第二端发送至少与待传输文件大小和分片大小有关的OPTIONS请求;
信息接收单元,配置为接收所述第二端根据所述OPTIONS请求确定的相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传请求单元,配置为向所述第二端发送用于所述待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;
上传选择单元,配置为根据接收到所述第二端的反馈的更新的文件分片信息确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求,所述更新的文件分片信息为:所述第二端统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息。本发明实施例还提供了另一种异步传输文件的系统。所述系统用于传输包含多个分片的文件。所述系统包括:第二端,所述第二端包括:
OPTIONS请求接收单元,配置为接收第一端发送的至少与待传输文件大小和分片大小有关的OPTIONS请求;
信息生成/反馈单元,配置为根据所述OPTIONS请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传执行单元,配置为根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传;
信息记录/反馈单元,配置为统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息;
上传接收选择单元,配置为当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,只接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
一来,本实施方式可以在文件上传之后,查找到上传失败的分片文件,并对其进行续传,保证了文件传输的准确性和可靠性;
二来,本实施方式仅将上传失败的分片文件进行续传,而无需将所有的分片文件重新上传,提高了文件上传的速度;
三来,本实施方式通过文件分片的多线程上传文件的方式,最大限度地利用了带宽,节省了网络资源;
四来,本实施方式通过待传输列表,可以检验上传文件的进度和完整性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明异步传输文件的方法第一实施例流程示意图;
图2为本发明续传优化步骤第一实施例示意图;
图3为本发明异步传输文件的方法第二实施例流程示意图;
图4为本发明续传优化步骤第二实施例示意图;
图5为本发明一实施方式的待传输列表示意图;
图6为本发明异步传输文件的系统第一实施例结构示意图;
图7为本发明异步传输文件的系统第二实施例结构示意图;
图8为本发明一实施方式的异步传输文件的传输示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明异步传输文件的方法第一实施例流程示意图。如图1所示,该方法包括以下步骤:
S101:第一端向第二端发送至少与待传输文件大小和分片大小有关的OPTIONS请求。
在本实施方式中,第一端向第二端发送至少与待传输文件大小FileSize和分片大小PartSize有关的OPTIONS请求。
S102第一端接收所述第二端根据所述OPTIONS请求确定的相应的文件分片信息。
在本实施方式中,文件分片信息至少包括多个分片内容范围(例如范围1、范围2、范围3……)的待传输列表(此部分内容将在下文进行详细描述)。
S103:第一端向所述第二端发送用于所述待传输文件的多个异步上传请求。
在本实施方式中,每一异步上传请求中至少包含各自的分片内容范围。
S104:第一端根据接收到第二端的反馈的上传失败的分片内容范围的信息确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求。
在本实施方式中,可以当上传失败的分片内容范围的数量为0时,第一端结束异步上传;也可以当上传失败的分片内容范围的数量不为0时,第一端重新提交用于所述待传输文件的所述多个异步上传请求。
一来,本实施方式可以在文件上传之后,查找到上传失败的分片文件,并对其进行续传,保证了文件传输的准确性和可靠性;
二来,本实施方式仅将上传失败的分片文件进行续传,而无需将所有的分片文件重新上传,提高了文件上传的速度;
三来,本实施方式通过文件分片的多线程上传文件的方式,最大限度地利用了带宽,节省了网络资源;
四来,本实施方式通过待传输列表,可以检验上传文件的进度和完整性。
图2为本发明续传优化步骤第一实施例示意图。该步骤是在图1文件传输的基础上所执行续传优化步骤。二者相同或者相似之处不再赘述,在此仅描述二者不同之处。如图2所示,该续传优化步骤包括以下步骤:
S201:所述第一端接收所述第二端反馈的再次更新的文件分片信息。
在本实施方式中,所述再次更新的文件分片信息为:所述第二端在所述续传期间统计的续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录生成的信息。
S202:所述第一端根据接收的所述第二端反馈的再次更新的文件分片信息确定重新提交用于所述待传输文件的所述多个异步上传请求。
S203:所述第一端至少执行一次所述续传优化步骤,直到所述续传失败的分片内容范围的数量为0。
在本实施方式中,可以是当所述续传失败的分片内容范围的数量为0时,第一端结束续传;当所述续传失败的分片内容范围的数量不为0时,第一端重新提交用于所述待传输文件的所述多个异步上传请求,第二端只接收与所述再次更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
本实施方式通过续传优化步骤优化了续传过程,提高了续传的文件成功率。进一步提高了包括了文件异步上传过程和续传过程的整体文件上传过程的准确性和可靠性。
图3为本发明异步传输文件的方法第二实施例流程示意图。如图3所示,该方法包括以下步骤:
S301:第二端接收第一端发送的至少与待传输文件大小和分片大小有关的OPTIONS请求。
S302:第二端根据所述OPTIONS请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送。
在本实施方式中,所述文件分片信息至少包括多个分片内容范围的待传输列表。
S303:所述第二端根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传。
S304:所述第二端统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息。
S305:当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,所述第二端只接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
图4为本发明续传优化步骤第二实施例示意图。如图4所示,该续传优化步骤包括以下步骤:
S401:所述第二端统计所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录,生成再次更新的文件分片信息,并向所述第一端反馈再次更新的文件分片信息;
S402:当接收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,所述第二端只接收与所述再次更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传;
S403:所述第二端至少执行一次所述续传优化步骤,直到所述续传失败的分片内容范围的数量为0。
本实施方式通过续传优化步骤优化了续传过程,提高了续传的文件成功率。进一步提高了包括了文件异步上传过程和续传过程的整体文件上传过程的准确性和可靠性。
在本实施方式中,该方法还可以包括:
在第一端结束异步上传之后,所述第二端将拼接后的文件大小与所述待传输文件大小相比较,
当二者不一致时,所述第一端将不一致的结果反馈给所述第二端;
所述第一端根据反馈的不一致的结果执行所述续传优化步骤。
本实施方式通过再次验证文件的完整性,进一步提高了文件传输的准确性。
在本实施方式中,第一端向第二端发送的OPTIONS请求包括:待传输文件名、待传输文件大小、分片大小、以及相应的令牌;
所述第二端根据所述OPTIONS请求确定相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表包括:
所述第二端收到所述OPTIONS请求后,首先判断缓存中是否存在所述OPTIONS请求中的令牌;
若不存在,则所述第二端根据OPTIONS请求确定并缓存相应的文件分片信息,所述文件分片信息包括令牌和多个分片内容范围的待传输列表,所述多个分片内容范围由所述待传输文件大小和分片大小确定;
若存在,则所述第二端根据所述令牌确定曾缓存的相应的最新状态的文件分片信息。
本实施方式在续传文件期间,优先利用曾缓存的相应的最新状态的文件分片信息,减少了数据运算,提高了文件传输的速度。
图5为本发明一实施方式的待传输列表示意图。如图5所示,待传输列表可以包括:包括由密钥信息和对应的数据信息组成的第一记录、第二记录和第三记录。密钥信息包括令牌,令牌由与待传输文件和分片有关的内容(例如账户和范围)确定,其中:
第一记录的密钥信息可以包括所述令牌。第一记录的数据信息可以包括分片元数据信息。分片元数据信息可以包括:文件大小、分片数量等。
第二记录的密钥信息可以包括:所述令牌和账户。第二记录的数据信息可以包括:完成数量和错误数量和总数量。其中,完成数量+错误数量=总数量。
第三记录的密钥信息可以包括:所述令牌和不同分片内容范围的多个密钥信息。第三记录的数据信息可以包括:与所述多个密钥信息相对应的不同分片内容范围(例如范围1、范围2、范围3……)的上传完成情况。
在本实施方式中,可以设置第三记录的数据信息的数值默认为0。当某一分片内容成功传输时,将成功传输的分片内容对应的第三记录的数据信息的数值变更为1,将完成数量增加1,并删除第三记录中对应的密钥信息和数据信息;当分片内容传输失败时,将传输失败的分片内容对应的失败数量增加1。
一来,本实施方式通过待传输列表,可以快速准确的记录文件传输的状态,提高了文件传输的速度;
二来,本实施方式通过设置由令牌确定的密钥,进一步提升了数据传输的安全性。
在本实施方式中,当所述上传失败的分片内容范围的数量为0或所述续传失败的分片内容范围的数量为0时,所述第二端删除文件分片信息。
一来,本实施方式通过将接收的数据进行存储(例如缓存),待处理完毕后再删除缓存的数据,能够防止无效数据占用内存资源,提高了资源利用率;
二来,本实施方式可以防止无效数据加入有效数据进行运算等带来的运算错误的风险;
三来,本实施方式减少了数据处理量,提高了数据运算速度,进而提高了文件传输的效率。
图6为本发明异步传输文件的系统第一实施例结构示意图。如图6所示,
所述系统包括:第一端,所述第一端包括:
OPTIONS请求单元,配置为向第二端发送至少与待传输文件大小和分片大小有关的OPTIONS请求;
信息接收单元,配置为收所述第二端根据所述OPTIONS请求确定的相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传请求单元,配置为向所述第二端发送用于所述待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;
上传选择单元,配置为根据接收到所述第二端的反馈的上传失败的分片内容范围的数量确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求。
在本实施方式中,所述第一端还包括:
续传选择单元,配置为根据接收的所述第二端反馈的再次更新的文件分片信息确定重新提交用于所述待传输文件的所述多个异步上传请求,所述再次更新的文件分片信息为:所述第二端在所述续传期间统计的续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录生成的信息。
一来,本实施方式可以在文件上传之后,查找到上传失败的分片文件,并对其进行续传,保证了文件传输的准确性和可靠性;
二来,本实施方式仅将上传失败的分片文件进行续传,而无需将所有的分片文件重新上传,提高了文件上传的速度;
三来,本实施方式通过文件分片的多线程上传文件的方式,最大限度地利用了带宽,节省了网络资源;
四来,本实施方式通过待传输列表,可以检验上传文件的进度和完整性。
图7为本发明异步传输文件的系统第二实施例结构示意图。如图7所示,
所述系统包括:第二端,所述第二端包括:
OPTIONS请求接收单元,配置为接收第一端发送的至少与待传输文件大小和分片大小有关的OPTIONS请求;
信息生成/反馈单元,配置为根据所述OPTIONS请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传执行单元,配置为根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传;
信息记录/反馈单元,配置为统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息;
上传接收选择单元,配置为当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,只接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
在本实施方式中,所述第二端还包括:
记录更新/反馈单元,配置为统计所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录,生成再次更新的文件分片信息,并向所述第一端反馈再次更新的文件分片信息;
续传接收选择单元,配置为当接收到所述第一端重新提交用于所述待传输文件的所述多个异步上传请求时,只接收与所述再次更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
本实施方式通过增加记录更新/反馈单元和续传接收选择单元来执行续传优化步骤,优化了续传过程,提高了续传的文件成功率。进一步提高了包括了文件异步上传过程和续传过程的整体文件上传过程的准确性和可靠性。
在本实施方式中,第二端还可以包括删除单元(图中未进行标识)。删除单元配置为当上传失败的分片内容范围的数量为0或所述续传失败的分片内容范围的数量为0时,删除文件分片信息。
一来,本实施方式通过将接收的数据进行存储(例如缓存),待处理完毕后再删除缓存的数据,能够防止无效数据占用内存资源,提高了资源利用率;
二来,本实施方式可以防止无效数据加入有效数据进行运算等带来的运算错误的风险;
三来,本实施方式减少了数据处理量,提高了数据运算速度,进而提高了文件传输的效率。
在各个实施方式中,第一端可以为客户端,第二端可以为服务器。
本实施方式在续传文件期间,优先利用曾缓存的相应的最新状态的文件分片信息,减少了数据运算,提高了文件传输的速度。
图8为本发明一实施方式的异步传输文件的传输示意图。如图8所示,异步传输文件的系统可以包括客户端、服务器和缓存器(可以设置在服务器内,也可以设置在其它的具有存储或者运算功能的设备内)。
下面具体说明本实施方式中的异步传输文件的方法其实现方式。参照图6,其包括如下步骤:
第一步,客户端向服务器发起OPTIONS请求。
在本实施方式中,该请求中可以包括文件名、文件大小、线程数以及分片大小信息,并且根据上述信息形成与之对应的Token(例如令牌)信息。
第二步,服务器计算文件分片信息
在本实施方式中,服务器接收到OPTIONS请求后,根据文件大小、线程数以及分片大小信息计算出每一个包含Content-Range(例如内容范围)信息的分片。
第三步,服务器将分片元数据信息、计数信息以及分片写入缓存器。
其中,分片元数据信息的Key(例如密钥)为Token,Value为文件大小、分片数量的Json字符串;计数信息的Key为Token+Account,Value包括完成数量FinishCount、错误数量ErrorCount和总数量AllCount;分片的Key为Token+RangeN,Value值为0或1,0代表上传成功,1代表上传失败。
第四步,客户端执行多线程异步传输。
第五步,服务器解析文件分片信息
在本实施方式中,传输时,服务器根据Token+RangeN查询缓存,如果该Token+RangeN存在于分片的Key中,则开始上传,否则断开连接。上传至服务器的分片的名称记为Token.part[1…N]。
第六步,服务器更新文件分片信息
在本实施方式中,如果分片上传成功并且分片的大小也验证成功,则修改缓存中的数据,将缓存中的该分片的Token+RangeN数据释放,并且技术信息的Token+Account中的FinishCount的数值加1。
如果分片上传失败,则该分片的Token+RangeN的Value值由0变为1,Token+Account中的ErrorCount值加1。
当FinishCount+ErrorCount=AllCount时,代表本次上传请求完成,但是存在传输失败的分片;
当FinishCount=AllCount时,则本次异步传输全部完成,所有分片传输成功,将得到的N个Token.part[1…N]文件进行合并。
当第四步有上传失败的分片,即ErrorCount值不为0(或者FinishCount≠AllCount),则客户端向服务器发起续传请求,并且在请求头中加入Old-Token数据,此时,在缓存中查找之前的分片元数据信息的Token数据。当该Token数据与在请求头中加入的Old-Token数据一致时,则服务器根据分片元数据信息再次计算出相应的Token+RangeN。
开始后续的异步传输,将ErrorCount的数值重新设置为0,并且只进行未完成的分片的上传工作,重复步骤四,直至FinishCount=AllCount,所有分片传输完成。
第七步,合并分片文件。
在本实施方式中,将分片文件按文件的分配范围进行拼接,也可以按时间戳等方式进行拼接,以保证准确还原待传输的文件。
在本实施方式中,由分片元数据信息、计数信息以及分片写入缓存的待传输列表与图5列表类似,再此不再赘述。
本发明各个实施例中可以通过硬件处理器(hardware processor)和各单元来实现相关功能模块的各项功能。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种异步传输文件的方法,用于第一端和第二端之间的包含多个分片的文件的传输,其特征在于,包括:
第一端向第二端发送请求,所述请求包括待传输文件大小和分片大小;
所述第一端接收所述第二端根据所述请求确定的相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表;
所述第一端向所述第二端发送用于所述待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;
所述第一端根据接收到所述第二端的反馈的更新的文件分片信息确定结束异步上传或者重新提交用于所述待传输文件续传的所述多个异步上传请求,所述更新的文件分片信息为:所述第二端统计的异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息。
2.根据权利要求1所述的方法,其特征在于,在执行文件的续传之后,还包括续传优化步骤:
所述第一端接收所述第二端反馈的再次更新的文件分片信息,所述再次更新的文件分片信息为:所述第二端统计的在所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录生成的信息;
所述第一端根据接收的所述第二端反馈的再次更新的文件分片信息确定重新提交用于所述待传输文件的所述多个异步上传请求;
所述第一端至少执行一次所述续传优化步骤,直到所述续传失败的分片内容范围的数量为0。
3.一种异步传输文件的方法,用于第一端和第二端之间的包含多个分片的文件的传输,其特征在于,包括:
第二端接收第一端发送的请求,所述请求包括待传输文件大小和分片大小;
所述第二端根据所述请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表;
所述第二端根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传;
所述第二端统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息;
当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,所述第二端接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
4.根据权利要求3所述的方法,其特征在于,在执行文件的续传之后,还包括续传优化步骤:
所述第二端统计所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录,生成再次更新的文件分片信息,并向所述第一端反馈再次更新的文件分片信息;
当接收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,所述第二端只接收与所述再次更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传;
所述第二端至少执行一次所述续传优化步骤,直到所述续传失败的分片内容范围的数量为0。
5.根据权利要求4所述的方法,其特征在于,当所述上传失败的分片内容范围的数量为0或所述续传失败的分片内容范围的数量为0时,所述第二端删除文件分片信息。
6.根据权利要求3-5中任一项所述的方法,其特征在于,所述第二端接收所述第一端发送的请求包括:待传输文件名、待传输文件大小、分片大小、以及相应的令牌;
所述第二端根据所述请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表包括:
所述第二端收到所述请求后,首先判断缓存中是否存在所述请求中的令牌;
若不存在,则所述第二端根据请求确定并缓存相应的文件分片信息,所述文件分片信息包括令牌和多个分片内容范围的待传输列表,所述多个分片内容范围由所述待传输文件大小和分片大小确定;
若存在,则所述第二端根据所述令牌确定曾缓存的相应的最新状态的文件分片信息。
7.一种异步传输文件的系统,其特征在于,所述系统包括:
请求单元,用于为向第二端发送请求,所述请求包括待传输文件大小和分片大小;
信息接收单元,用于为接收所述第二端根据所述请求确定的相应的文件分片信息,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传请求单元,用于为向所述第二端发送用于所述待传输文件的多个异步上传请求,每一异步上传请求中至少包含各自的分片内容范围;
上传选择单元,用于为根据接收到所述第二端的反馈的更新的文件分片信息确定结束异步上传或者重新提交用于所述待传输文件的所述多个异步上传请求,所述更新的文件分片信息为:所述第二端统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息。
8.根据权利要求7所述的系统,其特征在于,还包括:
续传选择单元,用于为根据接收的所述第二端反馈的再次更新的文件分片信息确定重新提交用于所述待传输文件的所述多个异步上传请求,所述再次更新的文件分片信息为:所述第二端统计的所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录生成的信息。
9.一种异步传输文件的系统,其特征在于,所述系统包括:
请求接收单元,用于为接收第一端发送的请求,所述请求包括待传输文件大小和分片大小;
信息生成/反馈单元,用于为根据所述请求确定相应的文件分片信息,并将所述分片信息向所述第一端发送,所述文件分片信息至少包括多个分片内容范围的待传输列表;
上传执行单元,用于为根据接收的所述第一端发送的包括文件分片信息的多个异步上传请求,执行文件的异步上传;
信息记录/反馈单元,用于为统计异步上传期间上传成功的分片内容范围的数量和上传失败的分片内容范围的数量,并在所述待传输列表中删除上传成功的分片内容范围的记录,生成更新的文件分片信息,并向所述第一端反馈更新的文件分片信息;
上传接收选择单元,用于为当收到所述第一端重新提交的用于所述待传输文件的所述多个异步上传请求时,只接收与所述更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
10.根据权利要求9所述的系统,其特征在于,还包括:
记录更新/反馈单元,用于为统计所述续传期间续传成功的分片内容范围的数量和续传失败的分片内容范围的数量,并在所述更新的待传输列表中删除续传成功的分片内容范围的记录,生成再次更新的文件分片信息,并向所述第一端反馈再次更新的文件分片信息;
续传接收选择单元,用于为当接收到所述第一端重新提交用于所述待传输文件的所述多个异步上传请求时,接收与所述再次更新的文件分片信息中的待传输列表中包含的分片内容范围对应的异步上传请求,执行文件的续传。
CN201510809846.4A 2015-11-20 2015-11-20 异步传输文件的方法及系统 Pending CN105897825A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510809846.4A CN105897825A (zh) 2015-11-20 2015-11-20 异步传输文件的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510809846.4A CN105897825A (zh) 2015-11-20 2015-11-20 异步传输文件的方法及系统

Publications (1)

Publication Number Publication Date
CN105897825A true CN105897825A (zh) 2016-08-24

Family

ID=57002285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510809846.4A Pending CN105897825A (zh) 2015-11-20 2015-11-20 异步传输文件的方法及系统

Country Status (1)

Country Link
CN (1) CN105897825A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112398916A (zh) * 2020-10-29 2021-02-23 北京华云安信息技术有限公司 基于http协议的文件传输方法及装置
CN113392055A (zh) * 2020-03-13 2021-09-14 北京小米移动软件有限公司 文件传输方法、文件传输装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101588287A (zh) * 2008-05-20 2009-11-25 华为技术有限公司 对等网络数据调度和下载的方法、装置和系统
CN101848067A (zh) * 2010-06-22 2010-09-29 中兴通讯股份有限公司 一种自适应带宽的数据传输方法及系统
CN102447893A (zh) * 2010-09-30 2012-05-09 北京沃安科技有限公司 手机视频实时采集和发布的方法及系统
US20130275559A1 (en) * 2007-01-17 2013-10-17 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
CN104519090A (zh) * 2013-09-27 2015-04-15 深圳市腾讯计算机系统有限公司 文件传输方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130275559A1 (en) * 2007-01-17 2013-10-17 Intertrust Technologies Corporation Methods, systems, and apparatus for fragmented file sharing
CN101588287A (zh) * 2008-05-20 2009-11-25 华为技术有限公司 对等网络数据调度和下载的方法、装置和系统
CN101848067A (zh) * 2010-06-22 2010-09-29 中兴通讯股份有限公司 一种自适应带宽的数据传输方法及系统
CN102447893A (zh) * 2010-09-30 2012-05-09 北京沃安科技有限公司 手机视频实时采集和发布的方法及系统
CN104519090A (zh) * 2013-09-27 2015-04-15 深圳市腾讯计算机系统有限公司 文件传输方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113392055A (zh) * 2020-03-13 2021-09-14 北京小米移动软件有限公司 文件传输方法、文件传输装置及存储介质
CN113392055B (zh) * 2020-03-13 2024-01-30 北京小米移动软件有限公司 文件传输方法、文件传输装置及存储介质
CN112398916A (zh) * 2020-10-29 2021-02-23 北京华云安信息技术有限公司 基于http协议的文件传输方法及装置
CN112398916B (zh) * 2020-10-29 2024-02-02 北京华云安信息技术有限公司 基于http协议的文件传输方法及装置

Similar Documents

Publication Publication Date Title
US10949253B2 (en) Data forwarder for distributed data acquisition, indexing and search system
CN109246229A (zh) 一种分发资源获取请求的方法和装置
CN107483627A (zh) 一种文件分发、下载方法、分发服务器、客户端及系统
CN111054067B (zh) 游戏存档文件存储方法、电子设备和存储介质
CN108379845B (zh) 信息处理方法、装置和存储介质
CN105635324A (zh) 用于浏览器或服务器的大文件上传、续传方法和装置
CN107517239A (zh) 数据传输方法和装置
CN103281356B (zh) 一种分发文件的方法及系统
CN113111043B (zh) 一种中台源数据文件的处理方法、装置、系统及存储介质
CN105812456A (zh) 一种文件传输方法及设备
CN110213623A (zh) 视频上传方法、视频上传装置及计算机可读存储介质
US11265182B2 (en) Messaging to enforce operation serialization for consistency of a distributed data structure
CN101741884A (zh) 一种分布式存储方法和装置
CN102223416A (zh) 一种媒体文件的传输方法及系统
CN107360233A (zh) 文件上传的方法、装置、设备及可读存储介质
CN106354865A (zh) 一种同步主从数据库的方法、装置和系统
CN108200112A (zh) 分布式存储方法及系统
CN109361762A (zh) 一种文件传输方法、装置及系统
CN105897825A (zh) 异步传输文件的方法及系统
US10103961B2 (en) Collecting client-side application performance monitoring information
CN105721526A (zh) 一种终端、服务器文件同步的方法及装置
CN111935242A (zh) 数据传输方法、装置、服务器以及存储介质
CN106294627A (zh) 数据管理方法及数据服务器
CN102882961A (zh) 数据校验方法及服务器
US9762696B2 (en) Data storage communication apparatus, and data transmission and management methods using the same

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160824