CN107707590A - 数据传输的***、方法及装置 - Google Patents
数据传输的***、方法及装置 Download PDFInfo
- Publication number
- CN107707590A CN107707590A CN201610649622.6A CN201610649622A CN107707590A CN 107707590 A CN107707590 A CN 107707590A CN 201610649622 A CN201610649622 A CN 201610649622A CN 107707590 A CN107707590 A CN 107707590A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- upload
- interruption position
- client
- 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/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)
Abstract
本发明公开一种数据传输的***、方法及装置,涉及互联网技术领域,能够解决现有上传文件过程中存在浪费流量、上传效率低的问题。本发明的***包括:客户端和服务器;其中,所述客户端用于获取上传中断位置,并根据所述上传中断位置确定本次待上传数据的起始位置,携带所述起始位置从所述起始位置处继续上传文件;所述服务器用于接收所述客户端根据所述上传中断位置继续上传的数据以及本次上传数据的起始位置,并根据所述起始位置以及已接收的数据信息,确定数据缺失范围,将所述数据缺失范围发送给所述客户端;所述客户端还用于接收所述服务器发送的数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
Description
技术领域
本发明涉及互联网技术领域,特别是涉及一种数据传输的***、方法及装置。
背景技术
随着互联网技术的发展,人们不仅能够从互联网侧快速获取需要的数据,例如浏览网页、下载文件以及观看视频等,还能够向互联网侧上传数据,实现资源共享,例如上传论文、自己编写的工具以及拍摄的视频等。在客户端向服务器上传文件的过程中,常常会因为网络故障、终端电量耗尽等原因发生上传中断的现象,因此需要重新从文件开头进行上传,上传效率较低。
为了提高文件上传效率,现有技术提出了一种断点续传的方法:在文件上传之前,客户端先将文件进行切片,然后启动一个线程顺序上传文件分片,或者启动多个线程同时上传不同的文件分片;若在上传某个文件分片的过程中发生网络中断,则在网络恢复正常后,重新上传中断发生时上传的文件分片,而无需上传已上传成功的文件分片,从而减少了重传的数据量,进而提高了文件上传效率。然而,由于对于网络发生中断时上传的文件分片,可能已经成功上传了一部分数据,所以在对整个文件分片进行重传时,存在部分数据重复上传的情况。因此,现有的断点续传的方式依然存在浪费流量、文件上传效率低的现象。
发明内容
有鉴于此,本发明提供一种数据传输的***、方法及装置,能够解决现有上传文件过程中存在浪费流量、上传效率低的问题。
第一方面,本发明提供了一种数据传输的***,所述***包括:客户端和服务器;其中,
所述客户端用于若在上传文件的过程中通信连接发生中断,则根据已发送的数据信息,确定上传中断位置,并在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
所述服务器用于若在接收所述文件的过程中所述通信连接发生中断,则根据已接收的数据信息,确定接收中断位置,并在所述通信连接恢复正常后,接收所述上传中断位置以及从所述上传中断位置处继续上传的文件;
所述服务器还用于根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围,将所述数据缺失范围发送给所述客户端;
所述客户端还用于接收所述数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
第二方面,本发明提供了一种数据传输的方法,所述方法应用于服务器侧,所述方法包括:
在与客户端建立通信连接后,接收所述客户端上传的文件;
若在接收所述文件的过程中所述通信连接发生中断,则根据已接收的数据信息,确定接收中断位置;
在所述通信连接恢复正常后,接收所述客户端上传的上传中断位置以及从所述上传中断位置处继续上传的文件,所述上传中断位置为所述客户端根据已发送的数据信息确定的、与所述接收中断位置对应的位置;
根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
将所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
第三方面,本发明提供了一种数据传输的方法,所述方法应用于客户端侧,所述方法包括:
在与服务器建立通信连接后,向所述服务器上传文件;
若在上传所述文件的过程中所述通信连接发生中断,则根据已发送的数据信息,确定上传中断位置;
在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
接收所述服务器发送的、根据所述上传中断位置以及已接收的数据信息确定的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
第四方面,本发明提供了一种数据传输的装置,所述装置应用于服务器侧,所述装置包括:
接收单元,用于在与客户端建立通信连接后,接收所述客户端上传的文件;
确定单元,用于当所述接收单元在接收所述文件的过程中所述通信连接发生中断时,根据已接收的数据信息,确定接收中断位置;
所述接收单元,还用于在所述通信连接恢复正常后,接收所述客户端上传的上传中断位置以及从所述上传中断位置处继续上传的文件,所述上传中断位置为所述客户端根据已发送的数据信息确定的、与所述接收中断位置对应的位置;
判断单元,用于根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
所述确定单元,还用于当所述判断单元的判断结果为存在缺失数据时,根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
第五方面,本发明提供了一种数据传输的装置,所述装置应用于客户端侧,所述装置包括:
上传单元,用于在与服务器建立通信连接后,向所述服务器上传文件;
确定单元,用于当所述上传单元在上传所述文件的过程中所述通信连接发生中断时,根据已发送的数据信息,确定上传中断位置;
所述上传单元还用于在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
接收单元,用于接收所述服务器发送的、根据所述上传中断位置以及已接收的数据信息确定的数据缺失范围;
所述上传单元还用于向所述服务器上传所述接收单元接收的所述数据缺失范围对应的缺失数据。
第六方面,本发明提供了一种数据传输的***,所述***包括:客户端和服务器;其中,
所述客户端用于获取上传中断位置,并根据所述上传中断位置确定本次待上传数据的起始位置,携带所述起始位置从所述起始位置处继续上传文件;
所述服务器用于接收所述客户端根据所述上传中断位置继续上传的数据以及本次上传数据的起始位置,并根据所述起始位置以及已接收的数据信息,确定数据缺失范围,将所述数据缺失范围发送给所述客户端;
所述客户端还用于接收所述服务器发送的数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
第七方面,本发明提供了一种数据传输的方法,所述方法应用于服务器侧,所述方法包括:
接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置;
根据所述起始位置以及已接收的数据信息,确定数据缺失范围;
将所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传缺失数据。
第八方面,本发明提供了一种数据传输的方法,所述方法应用于客户端侧,所述方法包括:
获取上传中断位置;
根据所述上传中断位置确定本次待上传数据的起始位置;
携带所述起始位置从所述起始位置处继续上传文件;
接收服务器发送的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
第九方面,本发明提供了一种数据传输的装置,所述装置应用于服务器侧,所述装置包括:
接收单元,用于接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置;
确定单元,用于根据所述接收单元接收的所述起始位置以及已接收的数据信息,确定数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传缺失数据。
第十方面,本发明提供了一种数据传输的装置,所述装置应用于客户端侧,所述装置包括:
获取单元,用于获取上传中断位置;
确定单元,用于根据所述获取单元获得的所述上传中断位置确定本次待上传数据的起始位置;
上传单元,用于携带所述确定单元获得的所述起始位置从所述起始位置处继续上传文件;
接收单元,用于接收服务器发送的数据缺失范围;
所述上传单元还用于向所述服务器上传所述接收单元接收的所述数据缺失范围对应的缺失数据。
第十一方面,本发明提供了一种数据传输的***,所述***包括:客户端和服务器;其中,
所述服务器用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围,并将所述数据缺失范围发送给所述客户端;
所述客户端用于接收所述数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
第十二方面,本发明提供了一种数据传输的方法,所述方法应用于服务器侧,所述方法包括:
根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
将所述数据缺失范围发送给客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
第十三方面,本发明提供了一种数据传输的方法,所述方法应用于客户端侧,所述方法包括:
接收服务器发送的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
第十四方面,本发明提供了一种数据传输的装置,所述装置应用于服务器侧,所述装置包括:
判断单元,用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
确定单元,用于当所述判断单元的判断结果为存在缺失数据时,根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
第十五方面,本发明提供了一种数据传输的装置,所述装置应用于客户端侧,所述装置包括:
接收单元,用于接收服务器发送的数据缺失范围;
上传单元,用于向所述服务器上传所述数据缺失范围对应的缺失数据。
借由上述技术方案,本发明提供的数据传输的***、方法及装置,能够由客户端获取上传中断位置,并根据该上传中断位置确定本次待上传数据的起始位置,携带该起始位置从该起始位置处继续上传文件;当服务器接收到客户端根据该上传中断位置继续上传的数据以及本次上传数据的起始位置后,服务器能够根据该起始位置以及已接收的数据信息,确定数据缺失范围,并将数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据传输的***示意图。
图2示出了本发明实施例提供的一种数据传输的方法的流程图;
图3示出了本发明实施例提供的另一种数据传输的方法的流程图;
图4示出了本发明实施例提供的一种数据传输的方法的交互图;
图5示出了现有技术中提供的断点续传示意图;
图6示出了本发明实施例提供的断点续传示意图;
图7示出了本发明实施例提供的一种数据传输的装置的组成框图;
图8示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图9示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图10示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图11示出了本发明实施例提供的另一种数据传输的方法的流程图;
图12示出了本发明实施例提供的另一种数据传输的方法的流程图;
图13示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图14示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图15示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图16示出了本发明实施例提供的另一种数据传输的方法的流程图;
图17示出了本发明实施例提供的另一种数据传输的方法的流程图;
图18示出了本发明实施例提供的另一种数据传输的装置的组成框图;
图19示出了本发明实施例提供的另一种数据传输的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据传输的***,如图1所示,***包括:客户端11和服务器12;其中,
客户端11用于若在上传文件的过程中通信连接发生中断,则根据已发送的数据信息,确定上传中断位置,并在通信连接恢复正常后,携带上传中断位置从上传中断位置处继续上传文件;
服务器12用于若在接收文件的过程中通信连接发生中断,则根据已接收的数据信息,确定接收中断位置,并在通信连接恢复正常后,接收上传中断位置以及从上传中断位置处继续上传的文件;
服务器12还用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围,将数据缺失范围发送给客户端11;
客户端11还用于接收数据缺失范围,并向服务器12上传数据缺失范围对应的缺失数据。
本发明提供的数据传输的***,能够在服务器与客户端建立通信连接后,服务器接收客户端上传的文件;当在接收该文件的过程中通信连接发生中断时,服务器可以根据已接收的数据信息,确定接收中断位置;在通信连接恢复正常后,服务器接收客户端上传的上传终端位置以及从该上传终端位置处继续上传的文件,然后服务器根据自身确定的接收中断位置和客户端确定的上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,并将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明实施例提供了一种数据传输的方法,该方法主要应用于服务器侧,如图2所示,该方法主要包括:
201、在与客户端建立通信连接后,接收客户端上传的文件。
当客户端想要访问服务器时,需要向服务器发送通信连接请求,并在接收到服务器发送的通信连接响应后,确定连接成功;在服务器与客户端建立通信连接后,客户端可以向服务器上传需要上传的文件,并且为了让服务器识别出上传的文件是哪个文件,客户端在上传文件数据的同时,还会上传用于唯一标识文件的文件标识。其中,文件标识可以由客户端直接分配,也可以由服务器间接分配。服务器为文件分配文件标识的具体实现方式可以为:客户端在上传文件之前,先向服务器发送文件标识分配请求;服务器接收到该文件标识分配请求后,可以为待上传文件随机分配一个文件标识,也可以根据预设分配规则,为待上传文件分配一个文件标识,例如按照从小到大的顺序依次为不同客户端待上传的文件进行编号。
需要说明的是,客户端与服务器之间通信所使用的协议可以为HTTP(HypertextTransfer Protocol,超文本传送协议),例如HTTP2.0,也可以为其他协议,在此不做限定。
202、若在接收文件的过程中通信连接发生中断,则根据已接收的数据信息,确定接收中断位置。
具体的,在客户端向服务器上传文件的过程中,可能会因为网络故障、终端电量耗尽等原因使得客户端与服务器之间的通信连接发生中断。为了便于通信连接恢复正常后,确定客户端继续上传文件时是否重新上传了已上传但未上传成功的数据,服务器在确定通信连接发生中断后,可以根据目前已接收到的关于该文件的数据信息确定接收中断位置,即发生中断时,最后一次接收到的数据在整个文件中的偏移量,以便后续根据客户端继续上传的数据信息确定是否存在缺失数据。
需要说明的是,在实际应用中,客户端和服务器判断通信连接(即网络连接)是否正常的方法有多种。例如,在客户端与服务器建立连接后,客户端可以定时向服务器侧发送心跳包,以指示其在线,服务器接收到心跳包后也会向客户端回复一个响应信息,以指示其接收到心跳包;若服务器在预设时间段内未接收到客户端发送的心跳包,则服务器确定连接中断,若服务器在一段时间后,又能够接收到客户端发送的心跳包,则服务器确定连接恢复正常;若客户端在预设时间段内未接收到服务器返回的响应信息,则客户端确定连接中断,若客户端在一段时间后,又能够接收到服务器返回的响应信息,则客户端确定连接恢复正常。
203、在通信连接恢复正常后,接收客户端上传的上传中断位置以及从上传中断位置处继续上传的文件。
其中,上传中断位置为客户端根据已发送的数据信息确定的、与接收中断位置对应的位置,即在通信连接发生中断时,客户端最后一次向服务器发送的数据在整个文件中的偏移量。在通信连接发生中断后,客户端可以根据已发送的数据信息确定上传中断位置,待通信连接恢复正常后,可以携带该上传中断位置从该上传中断位置处继续上传该文件。
204、根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据。
具体的,服务器可以判断接收中断位置与上传中断位置是否相同;若接收中断位置与上传中断位置相同,则确定接收中断位置与上传中断位置之间不存在缺失数据;若接收中断位置与上传中断位置不同,则确定接收中断位置与上传中断位置之间存在缺失数据。
205、若存在缺失数据,则根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围。
当服务器确定接收中断位置与上传中断位置之间存在缺失数据时,服务器可以确定该缺失数据的数据缺失范围为“(接收中断位置,上传中断位置)”。例如,若接收中断位置为50KB,上传中断位置为54KB,则数据缺失范围为(50KB,54KB)。
206、将数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
在实际应用中,在上传文件的整个过程中,通信连接可能不止发生一次中断,因此可能会存在多个数据缺失范围。在这种情况下,服务器可以每确定一个数据缺失范围,就立即向客户端发送携带数据缺失范围的数据缺失通知,以便客户端在基于上传中断位置继续上传后续数据的同时,另启动一个线程,上传缺失数据;也可以在文件的最后一个数据上传成功后,一次性向客户端发送所有的数据缺失范围,以便客户端集中上传缺失的数据。
需要补充的是,本发明实施例所提供的断点续传的方式不仅可以适用于上传文件的场景中,还可以适用于下载文件的场景中。
本发明实施例提供的数据传输的方法,能够在服务器与客户端建立通信连接后,服务器接收客户端上传的文件;当在接收该文件的过程中通信连接发生中断时,服务器可以根据已接收的数据信息,确定接收中断位置;在通信连接恢复正常后,服务器接收客户端上传的上传终端位置以及从该上传终端位置处继续上传的文件,然后服务器根据自身确定的接收中断位置和客户端确定的上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,并将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,为了使服务器在通信连接发生中断时,能够快速、准确地确定接收中断位置,本发明实施例提供了以下处理方法:从开始接收客户端上传的数据起,服务器将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段(其中包括从开始接收数据到第一次发生中断之间接收到的文件片段)以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至文件对应的索引文件中,其中,从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段的起始位置为本次通信连接发生中断对应的上传中断位置。
具体的,当服务器开始接收到客户端上传的数据时,服务器将接收到的数据存储至第一存储地址,然后生成一个索引文件,将第一存储地址、第一文件片段的起始位置(即0)存储至索引文件中;当通信连接第一次发生中断时,服务器将接收到的第一文件片段的大小存储至索引文件中;当通信连接恢复正常后,服务器继续接收客户端上传的数据,并将第二次接收的数据存储至第二存储地址,然后更新索引文件,即将第二存储地址、第二文件片段的起始位置(即第一次中断的上传中断位置)存储至索引文件中;若服务器确定第一次中断发生至第一次中断结束之间存在缺失数据,则会向客户端下发数据缺失通知,在这种情况下,服务器还会接收到客户端上传的缺失数据,在接收到缺失数据后,服务器可以将缺失数据存储至第三存储地址,然后更新索引文件,即将第三存储地址、缺失数据的起始位置(即第一次中断的接收中断位置)以及缺失数据的大小存储至索引文件中。按照上述存储方式依次将每次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址,并对应更新索引文件,以便为下次中断提供判断接收中断位置的依据,以及为后续下载文件提供文件查找途径。
在获得索引文件后,服务器可以利用索引文件快速、准确地确定接收中断位置,具体确定方法为:服务器根据索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及文件片段的大小,确定本次中断对应的接收中断位置。其中,接收中断位置=上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置+文件片段的大小。
示例性的,若上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置为100KB,文件片段的大小为200KB,则本次中断对应的接收中断位置为300KB。
进一步的,为了进一步提高文件上传效率,客户端可以对整个文件进行分片处理,然后启动多个线程同时上传多个文件分片,且对于每个文件分片分别采用上述断点续传的方式进行上传。具体的,在客户端对文件进行分片处理后,服务器可以同时接收客户端上传的多个文件分片标识以及每个文件分片标识对应的文件分片;然后针对每个文件分片分别执行上述步骤102-106。其中,每个文件分片中的上传中断位置和接收中断位置均可为在该文件分片中的偏移量。
需要说明的是,由于在对文件进行分片处理后,客户端将每个文件分片当做一个新的文件上传给服务器,所以服务器在接收每个文件分片的过程中,会针对每个文件分片分别生成对应的索引文件,用于独立记录对应文件分片的上传信息。例如,若客户端将文件切分成文件分片1、文件分片2、文件分片3以及文件分片4,则后续服务器会分别生成对应的索引文件,即文件分片1对应索引文件1、文件分片2对应索引文件2、文件分片3对应索引文件3以及文件分片4对应索引文件4。
进一步的,在文件上传成功后,其他客户端可能需要下载该文件。在实际应用中,下载该文件的具体实现方式可以为:服务器接收客户端发送的下载文件的下载请求;获取文件对应的索引文件;若文件对应的索引文件为一个,则根据索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,依次读取每一个文件片段,并按照读取顺序进行文件拼接;若文件对应的索引文件为至少两个,则基于文件分片标识的顺序,依次根据文件标识对应的索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,读取每一个文件片段,并按照读取顺序进行文件拼接;将拼接后的文件发送给客户端。
示例性的,客户端需要下载的文件对应2个索引文件,其中,索引文件1对应文件分片1,具体内容如表1所示,索引文件2对应文件分片2,具体内容如表2所示。在这种情况下,服务器会先依次读取索引文件1中地址1、地址3、地址2中的数据、索引文件2中地址4、地址6、地址5中的数据,然后将这些数据按照读取顺序进行拼接,最后将拼接后的文件发送给客户端。
表1
存储地址 | 起始位置 | 文件大小 |
地址1 | 0 | 50KB |
地址2 | 60KB | 100KB |
地址3 | 50KB | 10KB |
表2
存储地址 | 起始位置 | 文件大小 |
地址4 | 0 | 49KB |
地址5 | 59KB | 50KB |
地址6 | 49KB | 10KB |
进一步的,依据图2所示的方法,本发明的另一个实施例还提供了一种数据传输的方法,该方法主要应用于客户端侧,如图3所示,该方法主要包括:
301、在与服务器建立通信连接后,向服务器上传文件。
在上述实施例的步骤201中提及,为了使得服务器识别出上传的文件是哪个文件,客户端在上传文件数据的同时,还会上传用于唯一标识文件的文件标识。
302、若在上传文件的过程中通信连接发生中断,则根据已发送的数据信息,确定上传中断位置。
其中,上传中断位置为通信连接发生中断时,客户端最后一次向服务器发送的数据在整个文件中的偏移量。从客户端开始向服务器上传文件起,客户端会实时记录其上传的最新位置,因此当通信连接发生中断时,客户端可以根据记录上传的最新位置,确定上传中断位置。
303、在通信连接恢复正常后,携带上传中断位置从上传中断位置处继续上传文件。
当通信连接恢复正常后,客户端不仅会从上传中断位置处继续上传文件数据,同时还会将上传中断位置发送给服务器,以便服务器根据上传中断位置以及已接收的数据信息确定是否存在已上传但未上传成功的缺失数据。
304、接收服务器发送的、根据上传中断位置以及已接收的数据信息确定的数据缺失范围。
其中,服务器根据上传中断位置以及已接收的数据信息确定的数据缺失范围的具体实现方式如上述步骤302-305所述,在此不再赘述。
305、向服务器上传数据缺失范围对应的缺失数据。
当客户端接收到数据缺失范围后,可以立即启动一个新线程向服务器上传缺失数据,也可以待文件的最后一个数据已上传完毕后,将整个文件上传过程中接收到的所有数据缺失范围依次或者同时上传给服务器。
本发明实施例提供的数据传输的方法,能够在客户端与服务器建立通信连接后,客户端向服务器上传文件;若在上传该文件的过程中通信连接发生中断,则客户端可以根据已发送的数据信息,确定上传中断位置;在通信连接恢复正常后,携带该上传中断位置从该上传中断位置处继续上传该文件,然后接收服务器发送的、根据上传中断位置以及已接收的数据信息确定的数据缺失范围,并将该数据缺失范围对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,在上述实施例中提及为了加快文件上传效率,客户端可以先对文件进行分片,然后启动多个线程,同时上传多个分片。因此,上述步骤301可以细化为:客户端根据预设分片规则,对文件进行分片处理,获得不同的文件分片;根据文件分片在文件中的相对位置,为文件分片添加文件分片标识;同时向服务器发送多个文件分片标识以及每个文件分片标识对应的文件分片。
其中,预设分片规则可以为均分,也可以为非均分。此外,线程启动的个数可以根据终端当时的负载能力而定。
在实际应用中,基于上述断点续传的方法,在上传一个文件的过程中,客户端与服务器之间的具体交互方式可以如图4所示,其中,图中的文件ID(Identity,身份标识号码)为文件标识。
示例性的,如图5所示,现有技术中,当客户端需要向服务器上传文件时,先将待上传的文件切分为N个文件分片,然后顺序向服务器上传各个文件分片;若在上传文件分片M的过程中(如由位置A上传至位置C时)通信连接发生中断,则客户端需要从位置A处起重新上传整个文件分片M,直至一次性将整个文件分片M上传成功为止(即在整个文件分片M上传过程中未发生中断)。由此可知,由于当发生中断时,文件已成功上传至位置C处,若重新上传整个文件分片M,则需要重复上传AC这段数据,所以会产生浪费流量、文件上传效率低的问题。
为解决上述技术问题,如图6所示,客户端在向服务器上传文件前,先向服务器请求一个文件标识(或者客户端自己分配文件标识),然后携带该文件标识从整个文件的起始位置A处(即0处)开始向服务器侧上传数据;服务器接收到本次上传的数据流后,可以将该数据流写入文件1中,并建立一个该文件标识对应的索引文件,以便将文件1的地址以及起始位置A写入该索引文件中;当通信连接发生中断时,客户端根据已发送的数据信息,确定本次中断的上传中断位置为C,因此在通信连接恢复正常后,客户端会携带位置C从位置C处继续上传数据;服务器在接收到从位置C处上传的数据后,可以将接收的数据写入文件3中,同时文件1的大小、文件3的地址以及起始位置C写入索引文件中;此外,服务器还可以根据文件1的起始位置以及文件1的大小确定接收中断位置为B,且B<C,因此服务器确定本次中断存在缺失数据,且数据缺失范围为(B,C),由此向客户端下发数据缺失范围,以便客户端上传缺失数据;服务器接收到缺失数据后,可以将缺失数据写入文件2中,并将文件2的地址、起始位置B以及文件2大小写入索引文件中。由此可知,本发明的客户端只需重新上传缺失数据BC,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图2所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置主要应用于服务器侧,如图7所示,该装置主要包括接收单元41、确定单元42、判断单元43以及发送单元44。其中,
接收单元41,用于在与客户端建立通信连接后,接收客户端上传的文件;
确定单元42,用于当接收单元41在接收文件的过程中通信连接发生中断时,根据已接收的数据信息,确定接收中断位置;
接收单元41,还用于在通信连接恢复正常后,接收客户端上传的上传中断位置以及从上传中断位置处继续上传的文件,上传中断位置为客户端根据已发送的数据信息确定的、与接收中断位置对应的位置;
判断单元43,用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
确定单元42,还用于当判断单元43的判断结果为存在缺失数据时,根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围;
发送单元44,用于将确定单元42确定的数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
进一步的,如图8所示,该装置还包括:
写入单元45,用于从开始接收客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;
存储单元46,用于将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至文件对应的索引文件中,其中,从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段的起始位置为本次通信连接发生中断对应的上传中断位置。
进一步的,确定单元42用于根据索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及文件片段的大小,确定本次中断对应的接收中断位置。
进一步的,接收单元41用于在客户端对文件进行分片处理后,同时接收客户端上传的多个文件分片标识以及每个文件分片标识对应的文件分片;
确定单元42用于当接收单元41在接收文件分片的过程中通信连接发生中断时,根据已接收的文件分片的数据信息,确定相对于文件分片的接收中断位置。
进一步的,接收单元41还用于在文件上传成功后,接收客户端发送的下载文件的下载请求;
如图8所示,该装置还包括:
获取单元47,用于获取文件对应的索引文件;
处理单元48,用于当获取单元47获得的文件对应的索引文件为一个时,根据索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,依次读取每一个文件片段,并按照读取顺序进行文件拼接;
处理单元48,还用于当获取单元47获得的文件对应的索引文件为至少两个时,基于文件分片标识的顺序,依次根据文件标识对应的索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,读取每一个文件片段,并按照读取顺序进行文件拼接;
发送单元44还用于将处理单元48拼接后的文件发送给客户端。
进一步的,如图8所示,判断单元43包括:
判断模块431,用于判断接收中断位置与上传中断位置是否相同;
确定模块432,用于当判断模块431的判断结果为接收中断位置与上传中断位置相同时,确定接收中断位置与上传中断位置之间不存在缺失数据;
确定模块432还用于当判断模块431的判断结果为接收中断位置与上传中断位置不同时,确定接收中断位置与上传中断位置之间存在缺失数据。
本发明实施例提供的数据传输的装置,能够在服务器与客户端建立通信连接后,服务器接收客户端上传的文件;当在接收该文件的过程中通信连接发生中断时,服务器可以根据已接收的数据信息,确定接收中断位置;在通信连接恢复正常后,服务器接收客户端上传的上传终端位置以及从该上传终端位置处继续上传的文件,然后服务器根据自身确定的接收中断位置和客户端确定的上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,并将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图3所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置主要应用于客户端侧,如图9所示,该装置主要包括:上传单元51、确定单元52以及接收单元53。其中,
上传单元51,用于在与服务器建立通信连接后,向服务器上传文件;
确定单元52,用于当上传单元51在上传文件的过程中通信连接发生中断时,根据已发送的数据信息,确定上传中断位置;
上传单元51还用于在通信连接恢复正常后,携带上传中断位置从上传中断位置处继续上传文件;
接收单元53,用于接收服务器发送的、根据上传中断位置以及已接收的数据信息确定的数据缺失范围;
上传单元51还用于向服务器上传接收单元53接收的数据缺失范围对应的缺失数据。
进一步的,如图10所示,上传单元51包括:
处理模块511,用于根据预设分片规则,对文件进行分片处理,获得不同的文件分片;
添加模块512,用于根据处理模块511获得的文件分片在文件中的相对位置,为文件分片添加文件分片标识;
上传模块513,用于同时向服务器上传多个文件分片标识以及每个文件分片标识对应的文件分片。
本发明实施例提供的数据传输的装置,能够在客户端与服务器建立通信连接后,客户端向服务器上传文件;若在上传该文件的过程中通信连接发生中断,则客户端可以根据已发送的数据信息,确定上传中断位置;在通信连接恢复正常后,携带该上传中断位置从该上传中断位置处继续上传该文件,然后接收服务器发送的、根据上传中断位置以及已接收的数据信息确定的数据缺失范围,并将该数据缺失范围对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明的另一个实施例还提供了一种数据传输的***,该***包括:客户端和服务器;其中,
客户端用于获取上传中断位置,并根据上传中断位置确定本次待上传数据的起始位置,携带起始位置从起始位置处继续上传文件;
服务器用于接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置,并根据起始位置以及已接收的数据信息,确定数据缺失范围,将数据缺失范围发送给客户端;
客户端还用于接收服务器发送的数据缺失范围,并向服务器上传数据缺失范围对应的缺失数据。
本发明实施例提供的数据传输的***,能够由客户端获取上传中断位置,并根据上传中断位置确定本次待上传数据的起始位置,携带起始位置从起始位置处继续上传文件;然后由服务器接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置,并根据起始位置以及已接收的数据信息,确定数据缺失范围,将数据缺失范围发送给客户端;最后由客户端接收服务器发送的数据缺失范围,并向服务器上传数据缺失范围对应的缺失数据。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明的另一个实施例还提供了一种数据传输的方法,该方法主要应用于服务器侧,如图11所示,该方法主要包括:
601、接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置。
在服务器与客户端建立通信连接后,客户端可以向服务器上传需要上传的文件,并且为了让服务器识别出上传的文件是哪个文件,客户端在上传文件数据的同时,还会上传用于唯一标识文件的文件标识。其中,文件标识可以由客户端直接分配,也可以由服务器间接分配。客户端与服务器之间通信所使用的协议可以为HTTP,例如HTTP2.0,也可以为其他协议,在此不做限定。
在接收客户端上传文件的过程中,常常会因为网络故障、终端电量耗尽等原因使得客户端与服务器之间的通信连接发生中断,在通信连接中断期间,客户端无法向外发送任何数据,服务器也无法接收到任何数据;当通信连接恢复正常后,客户端可以根据自身已发送的数据信息确定的中断位置继续上传文件,即在通信连接恢复正常后,服务器能够接收到客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置。
需要说明的是,服务器接收到客户端本次上传数据的起始位置可以为上传中断位置,也可以或者为位于上传中断位置之后的任一位置。其中,无论起始位置是上传中断位置,还是上传中断位置之后的位置,由于从该位置起后续的数据均未发送过,所以不会出现重复发送已发数据的现象。并且,若起始位置为上传中断位置,则当本次中断不存在已发送但未发送成功的数据时,客户端无需补传数据;若起始位置为上传中断位置之后的位置,则无论本次中断是否存在已发送但未发送成功的数据,客户端均需要补传数据,即至少需要补传(上传中断位置,起始位置)这一范围内的数据。
602、根据起始位置以及已接收的数据信息,确定数据缺失范围。
本步骤可以具体细化为:
(1)根据已接收的数据信息,确定接收中断位置。
其中,确定接收中断位置的时机可以为通信连接发生中断期间,也以为通信连接恢复正常后。
(2)通过起始位置与接收中断位置之间的差异,确定数据缺失范围。
具体的,先判断起始位置是否与接收中断位置相同;若起始位置与接收中断位置相同,则服务器确定本次中断不存在已上传但未上传成功的缺失数据;若起始位置与接收中断位置不同,则服务器确定本次中断存在缺失数据,并且缺失数据的数据缺失范围为(接收中断位置,起始位置)。
603、将数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
本步骤的具体实现方式与上述步骤206一致,在此不再赘述。
本发明实施例提供的数据传输的方法,能够在接收客户端上传文件的过程中通信连接发生中断的情况下,当通信连接恢复正常后,先接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置,然后根据起始位置以及已接收的数据信息,确定数据缺失范围,最后将数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,由上述实施例可知,服务器确定是否存在缺失数据的关键是获得上传中断位置和接收中断位置,所以准确、快速地确定上传中断位置和接收中断位置极其重要。为了使服务器在通信连接发生中断时,能够快速、准确地确定接收中断位置,服务器可以从开始接收客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至文件对应的索引文件中。
进一步的,在创建索引文件后,根据已接收的数据信息,确定接收中断位置的具体实现方式可以为:根据索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及文件片段的大小,确定本次中断对应的接收中断位置。
进一步的,本发明的另一个实施例还提供了一种数据传输的方法,该方法应用于客户端侧,如图12所示,该方法主要包括:
701、获取上传中断位置。
在客户端与服务器建立通信连接后,客户端欲向服务器上传文件,可以先确定待上传文件的文件标识,然后携带文件标识上传文件。客户端向服务器上传文件的过程中,常常会因为网络故障、终端故障、服务器故障等原因使得通信连接发生中断,从而使得客户端无法向外发送数据,服务器无法接收外来数据,只有当通信连接恢复正常后,才可继续传输数据。为了使得服务器获知中断恢复后客户端从何处开始上传数据,以便服务器根据自身接收的数据信息判断客户端是否从接收中断位置处开始上传数据,从而判断是否存在遗漏的数据,客户端每次中断恢复后上传数据时需要将当前上传数据的起始位置上报给服务器。而为了避免客户端重复上传数据,需要先确定上传中断位置,才能确定本次待上传的起始位置。
其中,上传中断位置是根据已发送的数据信息确定的,并且上传中断位置确定的时机可以为通信连接中断期间,也可以为上传中断恢复正常之后。
702、根据上传中断位置确定本次待上传数据的起始位置。
本步骤可以具体细化为:将上传中断位置确定为起始位置;或者,将位于上传中断位置之后的任一位置确定为起始位置。
需要来说明的是,无论起始位置为上传中断位置,还是上传中断位置之后的位置,从起始位置继续上传的数据中均不存在重复上传的数据,且由于可能存在某次中断没有造成数据已发送但未发送成功的情况,所以将上传中断位置定为起始位置可以减少上传缺失数据的次数,从而提高上传效率。
703、携带起始位置从起始位置处继续上传文件。
具体的,在每次通信中断恢复正常后,客户端在向服务器上传文件时,除了基于自身判断的中断位置继续上传数据外,还会将每次上传的文件片段的起始位置上报给服务器,以便服务器根据客户端上传的文件片段起始位置与自身判断的中断位置进行比较,来判断是否存在缺失数据。
704、接收服务器发送的数据缺失范围。
其中,数据缺失范围可以由服务器根据接收到的起始位置以及已接收的数据信息而得,即服务器接收到客户端上传的起始位置后,先根据已接收的数据信息确定出接收中断位置,然后通过起始位置与接收中断位置之间的差异,确定出数据缺失范围。
需要说明的是,由于服务器可能及时针对当前中断下发数据缺失范围,也可能会在接收文件的最后一个数据后,再一次性下发所有中断产生的数据缺失范围,所以客户端一次性接收到的数据缺失范围可能只有一个,也可能有多个。
705、向服务器上传数据缺失范围对应的缺失数据。
其中,为了使得服务器能够获知客户端上传的缺失数据属于哪段数据,以便后续其他客户端下载该文件时,避免文件数据顺序被打乱,客户端在向服务器上传数据缺失范围对应的缺失数据时,可以携带数据缺失范围,也可以仅携带数据缺失范围的起始位置。
本发明实施例提供的数据传输的方法,能够在向服务器上传文件的过程中通信连接发生中断的情况下,客户端先获取上传中断位置,再根据上传中断位置确定本次待上传数据的起始位置,并携带起始位置从起始位置处继续上传文件,最后在接收到服务器发送的数据缺失范围后,能够将该数据缺失范围对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图11所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置主要应用于服务器侧,如图13所示,该装置主要包括:接收单元81、确定单元82以及发送单元83。其中,
接收单元81,用于接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置;
确定单元82,用于根据接收单元81接收的起始位置以及已接收的数据信息,确定数据缺失范围;
发送单元83,用于将确定单元82确定的数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
进一步的,起始位置为上传中断位置,或者为位于上传中断位置之后的任一位置。
进一步的,如图14所示,确定单元82包括:
第一确定模块821,用于根据已接收的数据信息,确定接收中断位置;
第二确定模块822,用于通过起始位置与接收中断位置之间的差异,确定数据缺失范围。
进一步的,如图14所示,该装置还包括:
写入单元84,用于从开始接收客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;
存储单元85,用于将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至文件对应的索引文件中。
进一步的,如图14所示,第一确定模块821用于根据索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及文件片段的大小,确定本次中断对应的接收中断位置。
进一步的,接收单元81用于若在接收客户端上传文件的过程中通信连接发生中断,则在通信连接恢复正常后,接收客户端根据上传中断位置继续上传的数据以及起始位置。
本发明实施例提供的数据传输的装置,能够在接收客户端上传文件的过程中通信连接发生中断的情况下,当通信连接恢复正常后,先接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置,然后根据起始位置以及已接收的数据信息,确定数据缺失范围,最后将数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图12所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置应用于客户端侧,如图15所示,该装置主要包括:获取单元91、确定单元92、上传单元93以及接收单元94。其中,
获取单元91,用于获取上传中断位置;
确定单元92,用于根据获取单元91获得的上传中断位置确定本次待上传数据的起始位置;
上传单元93,用于携带确定单元92获得的起始位置从起始位置处继续上传文件;
接收单元94,用于接收服务器发送的数据缺失范围;
上传单元93还用于向服务器上传接收单元94接收的数据缺失范围对应的缺失数据。
进一步的,确定单元92用于将上传中断位置确定为起始位置,或者将位于上传中断位置之后的任一位置确定为起始位置。
进一步的,确定单元92还用于在获取上传中断位置之前,根据已发送的数据信息,确定上传中断位置。
进一步的,数据缺失范围由服务器根据接收到的起始位置以及已接收的数据信息而得。
进一步的,获取单元用于若在向服务器上传文件的过程中通信连接发生中断,则在通信连接恢复正常后,获取上传中断位置。
本发明实施例提供的数据传输的装置,能够在向服务器上传文件的过程中通信连接发生中断的情况下,客户端先获取上传中断位置,再根据上传中断位置确定本次待上传数据的起始位置,并携带起始位置从起始位置处继续上传文件,最后在接收到服务器发送的数据缺失范围后,能够将该数据缺失范围对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明的另一个实施例还提供了一种数据传输的***,改***包括:客户端和服务器;其中,
服务器用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围,并将数据缺失范围发送给客户端;
客户端用于接收数据缺失范围,并向服务器上传数据缺失范围对应的缺失数据。
本发明实施例提供的数据传输的***,能够在获得接收中断位置以及上传中断位置后,先根据接收中断位置和上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器再根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,最后将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明的另一个实施例还提供了一种数据传输的方法,该方法主要应用于服务器侧,如图16所示,该方法主要包括:
1001、根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据。
其中,接收中断位置可以为通信连接发生中断的情况下,服务器根据已接收的数据信息确定的中断位置,上传中断位置可以为通信连接发生中断的情况下,客户端根据已发送的数据信息确定的中断位置。
服务器判断是否存在缺失数据的具体实现方法可以为:判断接收中断位置与上传中断位置是否相同;若接收中断位置与上传中断位置相同,则确定接收中断位置与上传中断位置之间不存在缺失数据;若接收中断位置与上传中断位置不同,则确定接收中断位置与上传中断位置之间存在缺失数据。
1002、若存在缺失数据,则根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围。
当服务器确定存在缺失数据时,可以将接收中断位置与上传中断位置之间数据确定为缺失数据,将“(接收中断位置,上传中断位置)”确定为数据缺失范围。
1003、将数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
本步骤的具体实现方式与上述步骤206一致,在此不再赘述。
本发明实施例提供的数据传输的方法,能够在获得接收中断位置以及上传中断位置后,先根据接收中断位置和上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器再根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,最后将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,本发明的另一个实施例还提供了一种数据传输的方法,该方法主要应用于客户端侧,如图17所示,该方法主要包括:
1101、接收服务器发送的数据缺失范围。
其中,数据缺失范围可以为服务器根据接收中断位置以及上传中断位置获得的范围,即数据缺失范围可以为“(接收中断位置,上传中断位置)”。接收中断位置可以为通信连接发生中断的情况下,服务器根据已接收的数据信息确定的中断位置,上传中断位置可以为通信连接发生中断的情况下,客户端根据已发送的数据信息确定的中断位置。当上传中断位置为客户端确定的中断位置时,当通信连接恢复正常后,客户端在基于上传中断位置继续上传数据时,还可以将上传中断位置上报给服务器,以便服务器根据上传中断位置以及接收中断位置确定数据缺失范围。
1102、向服务器上传数据缺失范围对应的缺失数据。
为了使得服务器能够获知客户端所上传的缺失数据在整个文件中的位置,客户端在向服务器上传缺失数据时,可以携带本次上传数据的起始位置,也可以为携带数据缺失范围。
本发明实施例提供的数据传输的方法,能够接收服务器发送的数据缺失范围,并将数据缺失范围对应的缺失数据上传给服务器,以便服务器获得完整的文件数据。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图16所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置应用于服务器侧,如图18所示,该装置主要包括:判断单元121、确定单元122以及发送单元123。其中,
判断单元121,用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
确定单元122,用于当判断单元121的判断结果为存在缺失数据时,根据接收中断位置以及上传中断位置确定缺失数据的数据缺失范围;
发送单元123,用于将确定单元122确定的数据缺失范围发送给客户端,以便客户端根据数据缺失范围上传缺失数据。
进一步的,判断单元121用于判断接收中断位置与上传中断位置是否相同;当接收中断位置与上传中断位置相同时,确定接收中断位置与上传中断位置之间不存在缺失数据;当接收中断位置与上传中断位置不同时,确定接收中断位置与上传中断位置之间存在缺失数据。
本发明实施例提供的数据传输的装置,能够在获得接收中断位置以及上传中断位置后,先根据接收中断位置和上传中断位置,判断是否存在已经上传但未上传成功的缺失数据,当确定存在缺失数据时,服务器再根据接收中断位置和上传中断位置确定缺失数据的数据缺失范围,最后将该数据缺失范围发送给客户端,以便客户端根据该数据缺失范围将对应的缺失数据上传给服务器。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
进一步的,依据图17所示的方法,本发明的另一个实施例还提供了一种数据传输的装置,该装置应用于客户端侧,如图19所示,该装置主要包括:接收单元131以及上传单元132。其中,
接收单元132,用于接收服务器发送的数据缺失范围;
上传单元132,用于向服务器上传数据缺失范围对应的缺失数据。
进一步的,数据缺失范围由服务器根据接收中断位置以及上传中断位置而得。
本发明实施例提供的数据传输的装置,能够接收服务器发送的数据缺失范围,并将数据缺失范围对应的缺失数据上传给服务器,以便服务器获得完整的文件数据。由此可知,与现有技术中需要重新上传通信连接发生中断时上传的整个文件分片相比,本发明的客户端只需重新上传已上传但未上传成功的数据即可,而无需重新上传已上传成功的任何数据,从而减少重传的数据量,并使得服务器接收到的数据中不存在重复的数据,进而节省了流量、提高了文件上传的效率。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
可以理解的是,上述方法、装置以及***中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的数据传输的***、方法及装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (39)
1.一种数据传输的***,其特征在于,所述***包括:客户端和服务器;其中,
所述客户端用于若在上传文件的过程中通信连接发生中断,则根据已发送的数据信息,确定上传中断位置,并在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
所述服务器用于若在接收所述文件的过程中所述通信连接发生中断,则根据已接收的数据信息,确定接收中断位置,并在所述通信连接恢复正常后,接收所述上传中断位置以及从所述上传中断位置处继续上传的文件;
所述服务器还用于根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围,将所述数据缺失范围发送给所述客户端;
所述客户端还用于接收所述数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
2.一种数据传输的方法,所述方法应用于服务器侧,其特征在于,所述方法包括:
在与客户端建立通信连接后,接收所述客户端上传的文件;
若在接收所述文件的过程中所述通信连接发生中断,则根据已接收的数据信息,确定接收中断位置;
在所述通信连接恢复正常后,接收所述客户端上传的上传中断位置以及从所述上传中断位置处继续上传的文件,所述上传中断位置为所述客户端根据已发送的数据信息确定的、与所述接收中断位置对应的位置;
根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
将所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
从开始接收所述客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;
将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至所述文件对应的索引文件中,其中,从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段的起始位置为本次通信连接发生中断对应的上传中断位置。
4.根据权利要求3所述的方法,其特征在于,根据已接收的数据信息,确定接收中断位置包括:
根据所述索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及所述文件片段的大小,确定本次中断对应的接收中断位置。
5.根据权利要求3所述的方法,其特征在于,接收所述客户端上传的文件包括:
在所述客户端对所述文件进行分片处理后,同时接收所述客户端上传的多个文件分片标识以及每个文件分片标识对应的文件分片;
若在接收所述文件的过程中所述通信连接发生中断,则根据已接收的数据信息,确定接收中断位置包括:
若在接收文件分片的过程中所述通信连接发生中断,则根据已接收的所述文件分片的数据信息,确定相对于所述文件分片的接收中断位置。
6.根据权利要求5所述的方法,其特征在于,在所述文件上传成功后,所述方法还包括:
接收客户端发送的下载所述文件的下载请求;
获取所述文件对应的索引文件;
若所述文件对应的索引文件为一个,则根据所述索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,依次读取每一个文件片段,并按照读取顺序进行文件拼接;
若所述文件对应的索引文件为至少两个,则基于文件分片标识的顺序,依次根据所述文件标识对应的索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,读取每一个文件片段,并按照读取顺序进行文件拼接;
将拼接后的文件发送给客户端。
7.根据权利要求2-6中任一项所述的方法,其特征在于,根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据包括:
判断所述接收中断位置与所述上传中断位置是否相同;
若所述接收中断位置与所述上传中断位置相同,则确定所述接收中断位置与所述上传中断位置之间不存在缺失数据;
若所述接收中断位置与所述上传中断位置不同,则确定所述接收中断位置与所述上传中断位置之间存在缺失数据。
8.一种数据传输的方法,所述方法应用于客户端侧,其特征在于,所述方法包括:
在与服务器建立通信连接后,向所述服务器上传文件;
若在上传所述文件的过程中所述通信连接发生中断,则根据已发送的数据信息,确定上传中断位置;
在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
接收所述服务器发送的、根据所述上传中断位置以及已接收的数据信息确定的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
9.根据权利要求8所述的方法,其特征在于,向所述服务器上传文件包括:
根据预设分片规则,对所述文件进行分片处理,获得不同的文件分片;
根据所述文件分片在所述文件中的相对位置,为所述文件分片添加文件分片标识;
同时向所述服务器上传多个文件分片标识以及每个文件分片标识对应的文件分片。
10.一种数据传输的装置,所述装置应用于服务器侧,其特征在于,所述装置包括:
接收单元,用于在与客户端建立通信连接后,接收所述客户端上传的文件;
确定单元,用于当所述接收单元在接收所述文件的过程中所述通信连接发生中断时,根据已接收的数据信息,确定接收中断位置;
所述接收单元,还用于在所述通信连接恢复正常后,接收所述客户端上传的上传中断位置以及从所述上传中断位置处继续上传的文件,所述上传中断位置为所述客户端根据已发送的数据信息确定的、与所述接收中断位置对应的位置;
判断单元,用于根据所述接收中断位置以及所述上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
所述确定单元,还用于当所述判断单元的判断结果为存在缺失数据时,根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
写入单元,用于从开始接收所述客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;
存储单元,用于将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至所述文件对应的索引文件中,其中,从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段的起始位置为本次通信连接发生中断对应的上传中断位置。
12.根据权利要求11所述的装置,其特征在于,所述接收单元用于在所述客户端对所述文件进行分片处理后,同时接收所述客户端上传的多个文件分片标识以及每个文件分片标识对应的文件分片;
所述确定单元用于当所述接收单元在接收文件分片的过程中所述通信连接发生中断时,根据已接收的所述文件分片的数据信息,确定相对于所述文件分片的接收中断位置。
13.根据权利要求12所述的装置,其特征在于,所述接收单元还用于在所述文件上传成功后,接收客户端发送的下载所述文件的下载请求;
所述装置还包括:
获取单元,用于获取所述文件对应的索引文件;
处理单元,用于当所述获取单元获得的所述文件对应的索引文件为一个时,根据所述索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,依次读取每一个文件片段,并按照读取顺序进行文件拼接;
所述处理单元,还用于当所述获取单元获得的所述文件对应的索引文件为至少两个时,基于文件分片标识的顺序,依次根据所述文件标识对应的索引文件中记录的文件片段的起始位置的先后顺序以及对应文件片段的存储地址,读取每一个文件片段,并按照读取顺序进行文件拼接;
所述发送单元还用于将所述处理单元拼接后的文件发送给客户端。
14.根据权利要求10-13中任一项所述的装置,其特征在于,所述判断单元包括:
判断模块,用于判断所述接收中断位置与所述上传中断位置是否相同;
确定模块,用于当所述判断模块的判断结果为所述接收中断位置与所述上传中断位置相同时,确定所述接收中断位置与所述上传中断位置之间不存在缺失数据;
所述确定模块还用于当所述判断模块的判断结果为所述接收中断位置与所述上传中断位置不同时,确定所述接收中断位置与所述上传中断位置之间存在缺失数据。
15.一种数据传输的装置,所述装置应用于客户端侧,其特征在于,所述装置包括:
上传单元,用于在与服务器建立通信连接后,向所述服务器上传文件;
确定单元,用于当所述上传单元在上传所述文件的过程中所述通信连接发生中断时,根据已发送的数据信息,确定上传中断位置;
所述上传单元还用于在所述通信连接恢复正常后,携带所述上传中断位置从所述上传中断位置处继续上传所述文件;
接收单元,用于接收所述服务器发送的、根据所述上传中断位置以及已接收的数据信息确定的数据缺失范围;
所述上传单元还用于向所述服务器上传所述接收单元接收的所述数据缺失范围对应的缺失数据。
16.根据权利要求15所述的装置,其特征在于,所述上传单元包括:
处理模块,用于根据预设分片规则,对所述文件进行分片处理,获得不同的文件分片;
添加模块,用于根据所述处理模块获得的所述文件分片在所述文件中的相对位置,为所述文件分片添加文件分片标识;
上传模块,用于同时向所述服务器上传多个文件分片标识以及每个文件分片标识对应的文件分片。
17.一种数据传输的***,其特征在于,所述***包括:客户端和服务器;其中,
所述客户端用于获取上传中断位置,并根据所述上传中断位置确定本次待上传数据的起始位置,携带所述起始位置从所述起始位置处继续上传文件;
所述服务器用于接收所述客户端根据所述上传中断位置继续上传的数据以及本次上传数据的起始位置,并根据所述起始位置以及已接收的数据信息,确定数据缺失范围,将所述数据缺失范围发送给所述客户端;
所述客户端还用于接收所述服务器发送的数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
18.一种数据传输的方法,所述方法应用于服务器侧,其特征在于,所述方法包括:
接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置;
根据所述起始位置以及已接收的数据信息,确定数据缺失范围;
将所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传缺失数据。
19.根据权利要求18所述的方法,其特征在于,所述起始位置为所述上传中断位置,或者为位于所述上传中断位置之后的任一位置。
20.根据权利要求18所述的方法,其特征在于,根据所述起始位置以及已接收的数据信息,确定数据缺失范围包括:
根据已接收的数据信息,确定接收中断位置;
通过所述起始位置与所述接收中断位置之间的差异,确定所述数据缺失范围。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括:
从开始接收所述客户端上传的数据起,将从本次通信连接恢复正常至下次通信连接发生中断之间接收到的文件片段以及每次接收到的缺失数据对应的文件片段分别写入不同的存储地址;
将每个文件片段对应的存储地址、每个文件片段的起始位置以及每个文件片段的大小之间的对应关系存储至所述文件对应的索引文件中。
22.根据权利要求21所述的方法,其特征在于,根据已接收的数据信息,确定接收中断位置包括:
根据所述索引文件中存储的从上次通信连接恢复正常至本次通信连接发生中断之间接收的文件片段的起始位置以及所述文件片段的大小,确定本次中断对应的接收中断位置。
23.根据权利要求18至22中任一项所述的方法,其特征在于,接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置包括:
若在接收客户端上传文件的过程中通信连接发生中断,则在所述通信连接恢复正常后,接收所述客户端根据所述上传中断位置继续上传的数据以及所述起始位置。
24.一种数据传输的方法,所述方法应用于客户端侧,其特征在于,所述方法包括:
获取上传中断位置;
根据所述上传中断位置确定本次待上传数据的起始位置;
携带所述起始位置从所述起始位置处继续上传文件;
接收服务器发送的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
25.根据权利要求24所述的方法,其特征在于,根据所述上传中断位置确定本次待上传数据的起始位置包括:
将所述上传中断位置确定为所述起始位置;
或者,将位于所述上传中断位置之后的任一位置确定为所述起始位置。
26.根据权利要求24所述的方法,其特征在于,在获取上传中断位置之前包括:
根据已发送的数据信息,确定上传中断位置。
27.根据权利要求24所述的方法,其特征在于,所述数据缺失范围由所述服务器根据接收到的起始位置以及已接收的数据信息而得。
28.根据权利要求24至27中任一项所述的方法,其特征在于,获取上传中断位置包括:
若在向服务器上传文件的过程中通信连接发生中断,则在所述通信连接恢复正常后,获取所述上传中断位置。
29.一种数据传输的装置,所述装置应用于服务器侧,其特征在于,所述装置包括:
接收单元,用于接收客户端根据上传中断位置继续上传的数据以及本次上传数据的起始位置;
确定单元,用于根据所述接收单元接收的所述起始位置以及已接收的数据信息,确定数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给所述客户端,以便所述客户端根据所述数据缺失范围上传缺失数据。
30.根据权利要求29所述的装置,其特征在于,所述确定单元包括:
第一确定模块,用于根据已接收的数据信息,确定接收中断位置;
第二确定模块,用于通过所述起始位置与所述接收中断位置之间的差异,确定所述数据缺失范围。
31.一种数据传输的装置,所述装置应用于客户端侧,其特征在于,所述装置包括:
获取单元,用于获取上传中断位置;
确定单元,用于根据所述获取单元获得的所述上传中断位置确定本次待上传数据的起始位置;
上传单元,用于携带所述确定单元获得的所述起始位置从所述起始位置处继续上传文件;
接收单元,用于接收服务器发送的数据缺失范围;
所述上传单元还用于向所述服务器上传所述接收单元接收的所述数据缺失范围对应的缺失数据。
32.根据权利要求31所述的装置,其特征在于,所述确定单元用于将所述上传中断位置确定为所述起始位置,或者将位于所述上传中断位置之后的任一位置确定为所述起始位置。
33.一种数据传输的***,其特征在于,所述***包括:客户端和服务器;其中,
所述服务器用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据,若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围,并将所述数据缺失范围发送给所述客户端;
所述客户端用于接收所述数据缺失范围,并向所述服务器上传所述数据缺失范围对应的缺失数据。
34.一种数据传输的方法,所述方法应用于服务器侧,其特征在于,所述方法包括:
根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
若存在缺失数据,则根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
将所述数据缺失范围发送给客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
35.根据权利要求34所述的方法,其特征在于,根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据包括:
判断所述接收中断位置与所述上传中断位置是否相同;
若所述接收中断位置与所述上传中断位置相同,则确定所述接收中断位置与所述上传中断位置之间不存在缺失数据;
若所述接收中断位置与所述上传中断位置不同,则确定所述接收中断位置与所述上传中断位置之间存在缺失数据。
36.一种数据传输的方法,所述方法应用于客户端侧,其特征在于,所述方法包括:
接收服务器发送的数据缺失范围;
向所述服务器上传所述数据缺失范围对应的缺失数据。
37.根据权利要求36所述的方法,其特征在于,所述数据缺失范围由所述服务器根据接收中断位置以及上传中断位置而得。
38.一种数据传输的装置,所述装置应用于服务器侧,其特征在于,所述装置包括:
判断单元,用于根据接收中断位置以及上传中断位置,判断是否存在已上传但未上传成功的缺失数据;
确定单元,用于当所述判断单元的判断结果为存在缺失数据时,根据所述接收中断位置以及所述上传中断位置确定缺失数据的数据缺失范围;
发送单元,用于将所述确定单元确定的所述数据缺失范围发送给客户端,以便所述客户端根据所述数据缺失范围上传所述缺失数据。
39.一种数据传输的装置,所述装置应用于客户端侧,其特征在于,所述装置包括:
接收单元,用于接收服务器发送的数据缺失范围;
上传单元,用于向所述服务器上传所述数据缺失范围对应的缺失数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610649622.6A CN107707590A (zh) | 2016-08-09 | 2016-08-09 | 数据传输的***、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610649622.6A CN107707590A (zh) | 2016-08-09 | 2016-08-09 | 数据传输的***、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107707590A true CN107707590A (zh) | 2018-02-16 |
Family
ID=61169085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610649622.6A Pending CN107707590A (zh) | 2016-08-09 | 2016-08-09 | 数据传输的***、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707590A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636340A (zh) * | 2019-09-30 | 2019-12-31 | 普联技术有限公司 | 一种视频文件的上传方法及存储设备 |
CN113395353A (zh) * | 2021-06-30 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184055A (zh) * | 2007-12-11 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 一种离线文件的发送、接收、传输方法及装置 |
CN102761614A (zh) * | 2012-06-29 | 2012-10-31 | 浪潮(北京)电子信息产业有限公司 | 一种实现网络数据传输断点续传的方法及*** |
CN102970104A (zh) * | 2012-10-24 | 2013-03-13 | 北京经纬恒润科技有限公司 | 一种获取数据的方法及服务器 |
CN103986779A (zh) * | 2014-05-29 | 2014-08-13 | 沈文策 | 一种应用数据传输方法、装置及终端设备 |
US9305069B2 (en) * | 2010-02-09 | 2016-04-05 | Google Inc. | Method and system for uploading data into a distributed storage system |
-
2016
- 2016-08-09 CN CN201610649622.6A patent/CN107707590A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101184055A (zh) * | 2007-12-11 | 2008-05-21 | 腾讯科技(深圳)有限公司 | 一种离线文件的发送、接收、传输方法及装置 |
US9305069B2 (en) * | 2010-02-09 | 2016-04-05 | Google Inc. | Method and system for uploading data into a distributed storage system |
CN102761614A (zh) * | 2012-06-29 | 2012-10-31 | 浪潮(北京)电子信息产业有限公司 | 一种实现网络数据传输断点续传的方法及*** |
CN102970104A (zh) * | 2012-10-24 | 2013-03-13 | 北京经纬恒润科技有限公司 | 一种获取数据的方法及服务器 |
CN103986779A (zh) * | 2014-05-29 | 2014-08-13 | 沈文策 | 一种应用数据传输方法、装置及终端设备 |
Non-Patent Citations (1)
Title |
---|
刘维: "《精通MATLAB与CC++混合程序设计》", 31 July 2015 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110636340A (zh) * | 2019-09-30 | 2019-12-31 | 普联技术有限公司 | 一种视频文件的上传方法及存储设备 |
CN110636340B (zh) * | 2019-09-30 | 2021-11-09 | 普联技术有限公司 | 视频文件的上传方法、存储设备、终端设备及存储介质 |
CN113395353A (zh) * | 2021-06-30 | 2021-09-14 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
WO2023273725A1 (zh) * | 2021-06-30 | 2023-01-05 | 北京字节跳动网络技术有限公司 | 文件下载方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107332876B (zh) | 区块链状态的同步方法及装置 | |
CN110995513B (zh) | 物联网***中的数据发送、接收方法、物联网设备及平台 | |
CN104283723B (zh) | 网络访问日志处理方法及装置 | |
CN107483627A (zh) | 一种文件分发、下载方法、分发服务器、客户端及*** | |
CN109660639B (zh) | 一种数据上传方法、设备、***及介质 | |
CN102035859A (zh) | 一种显示上传进度的方法、***和装置 | |
CN103731499B (zh) | 终端和文件传输方法 | |
CN103795762A (zh) | 一种反向代理的测试方法及*** | |
CN105847386A (zh) | 直播流的处理方法、装置及*** | |
CN105450479A (zh) | 一种监控模块的方法及装置 | |
CN104125303B (zh) | 数据读写请求方法、客户端及*** | |
CN103763380B (zh) | 一种同步演示数据的方法及*** | |
CN112817602A (zh) | 一种json格式数据发送、接收方法、设备及介质 | |
CN110460668B (zh) | 一种文件上传方法、装置、计算机设备和存储介质 | |
CN111447265A (zh) | 文件存储方法、文件下载方法和文件处理方法及相关组件 | |
CN111083204B (zh) | 文件传输方法、装置及存储介质 | |
CN103229480A (zh) | 分布式存储***中的数据处理方法及设备、客户端 | |
CN107707590A (zh) | 数据传输的***、方法及装置 | |
CN109150981B (zh) | 区块链网络组网方法、装置、设备及计算机可读存储介质 | |
CN109936609A (zh) | 终端链式升级方法、装置及升级管理服务器 | |
CN110445658B (zh) | 一种报文处理方法及*** | |
EP2690560A2 (en) | Method of benchmarking the behaviour of a replacement information system with the old system | |
CN106303577A (zh) | 下载流媒体的方法及装置 | |
CN105281940A (zh) | 一种基于netconf协议的hello报文交互的方法、设备和*** | |
CN108243208A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180216 |
|
RJ01 | Rejection of invention patent application after publication |