CN116668433A - 数据传输方法、装置、设备及介质 - Google Patents
数据传输方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN116668433A CN116668433A CN202310779511.7A CN202310779511A CN116668433A CN 116668433 A CN116668433 A CN 116668433A CN 202310779511 A CN202310779511 A CN 202310779511A CN 116668433 A CN116668433 A CN 116668433A
- Authority
- CN
- China
- Prior art keywords
- file
- data
- target
- client
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 174
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 25
- 230000008569 process Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 5
- 238000012217 deletion Methods 0.000 description 4
- 230000037430 deletion Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
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]
Abstract
本公开实施例涉及一种数据传输方法、装置、设备及介质,该方法应用于目标客户端,包括:在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中续传请求对应的第一中间文件;其中,第一中间文件为第一新增文件中完成传输的部分数据生成的文件;接收源客户端发送的第二中间文件;其中,第二中间文件为第二新增文件的部分文件,第二新增文件和第一新增文件在源客户端监听的源文件服务器中具备相同的文件路径,第二中间文件和第一中间文件的数据量相同;若第一中间文件和第二中间文件一致,则向目标文件服务器发送续传数据。本公开实施例,在不改变文件服务器自身的文件传输功能的情况下,实现了断点续传功能,并且避免了数据泄露。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备及介质。
背景技术
进行文件传输的过程中,在发生网络故障导致某个文件传输失败的情况下,采用断点续传技术能够在网络恢复时,从已经完成传输的该文件的部分数据之后继续进行未传输部分数据的传输,而不是从头重新进行整个文件传输。
相关技术中,实现该断点续传功能需要重写文件存储端的文件传输功能,若在已经投入使用的文件存储端的基础上增加该断点续传功能,需要将该文件存储端中的全部数据进行数据迁移,消耗较大的成本,并且提高了数据泄露的风险。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种数据传输方法、装置、设备及介质。
本公开实施例提供了一种数据传输方法,包括:
在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中所述续传请求对应的第一中间文件;其中,所述第一中间文件为第一新增文件中完成传输的部分数据生成的文件,所述续传请求为继续对所述第一新增文件进行传输的请求;
接收所述源客户端发送的第二中间文件;其中,所述第二中间文件为第二新增文件的部分文件,所述第二新增文件和所述第一新增文件在所述源客户端监听的源文件服务器中具备相同的文件路径,所述第二中间文件和所述第一中间文件的数据量相同;
若所述第一中间文件和所述第二中间文件一致,则向所述目标文件服务器发送所述第二新增文件中位于所述第二中间文件之后的续传数据,以使所述目标文件服务器根据所述第一中间文件和所述续传数据生成所述第二新增文件。
本公开实施例还提供了一种数据传输装置,包括:
获取模块,用于在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中所述续传请求对应的第一中间文件;其中,所述第一中间文件为第一新增文件中完成传输的部分数据生成的文件,所述续传请求为继续对所述第一新增文件进行传输的请求;
第一接收模块,用于接收所述源客户端发送的第二中间文件;其中,所述第二中间文件为第二新增文件的部分文件,所述第二新增文件和所述第一新增文件在所述源客户端监听的源文件服务器中具备相同的文件路径,所述第二中间文件和所述第一中间文件的数据量相同;
第一发送模块,用于若所述第一中间文件和所述第二中间文件一致,则向所述目标文件服务器发送所述第二新增文件中位于所述第二中间文件之后的续传数据,以使所述目标文件服务器根据所述第一中间文件和所述续传数据生成所述第二新增文件。
本公开实施例还提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的数据传输方法。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的数据传输方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例中提供的数据传输方案,包括:在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中续传请求对应的第一中间文件;其中,第一中间文件为第一新增文件中完成传输的部分数据生成的文件,续传请求为继续对第一新增文件进行传输的请求;接收源客户端发送的第二中间文件;其中,第二中间文件为第二新增文件的部分文件,第二新增文件和第一新增文件在源客户端监听的源文件服务器中具备相同的文件路径,第二中间文件和第一中间文件的数据量相同;若第一中间文件和第二中间文件一致,则向目标文件服务器发送第二新增文件中位于第二中间文件之后的续传数据,以使目标文件服务器根据第一中间文件和续传数据生成第二新增文件。
采用上述技术方案,目标客户端获取了目标文件服务器中已经落地的第一中间文件,并且接收了与第一中间文件的完整文件(即,第一新增文件)文件路径相同的第二新增文件的部分文件(即,第二中间文件),该第一中间文件和第二中间文件的数据量相同,具备可比性,目标客户端通过确定第一中间文件和第二中间文件一致,确定了新增文件未发生改变,因而能够基于之前接收的第一中间文件继续进行文件传输,从而通过增加源客户端和目标客户端,在不改变文件服务器自身的文件传输功能的情况下,实现了断点续传功能,并且由于文件服务器自身的传输功能未改变,无需为了传输功能的更新而进行文件服务器的数据迁移,避免了数据迁移过程中的数据泄露。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种数据传输方法的流程示意图;
图2为本公开实施例提供的一种数据传输的拓扑结构示意图;
图3为本公开实施例提供的另一种数据传输方法的流程示意图;
图4为本公开实施例提供的又一种数据传输方法的流程示意图;
图5为本公开实施例提供的一种应用于源客户端的数据传输方法的流程示意图;
图6为本公开实施例提供的一种应用于目标客户端的数据传输方法的流程示意图;
图7为本公开实施例提供的一种数据传输装置的结构示意图;
图8为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
进行文件传输的过程中,在发生网络故障导致某个文件传输失败的情况下,采用断点续传技术能够在网络恢复时,从已经完成传输的该文件的部分数据之后继续进行未传输部分数据的传输,而不是从头重新进行整个文件传输。
相关技术中,不同的文件存储端可以通过文件传输协议(File TransferProtocol,FTP)、服务器信息块(Server Message Block,SMB)、网络文件系统(NetworkFile System,NFS)等传输协议实现文件的传输。
但是,基于上述文件协议的传输,在实现断点续传功能时,需要对上述传输协议中的文件传输部分进行重写。若在已经投入使用的文件存储端(例如,文件服务器)的基础上增加该断点续传功能,需要将该文件存储端中的全部数据进行数据迁移,消耗较大的成本,并且提高了数据泄露的风险。
为了解决上述问题,本公开实施例提供了一种数据传输方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种数据传输方法的流程示意图,该方法可以由数据传输装置或者目标客户端执行,其中该装置可以采用软件和/或硬件实现,一般可集成在电子设备中,如图1所示,该数据传输方法包括:
步骤101,在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中续传请求对应的第一中间文件;其中,第一中间文件为第一新增文件中完成传输的部分数据生成的文件,续传请求为继续对第一新增文件进行传输的请求。
其中,客户端又称用户端,该客户端可以安装在文件服务器之外的电子设备中。该客户端可以为与文件服务器相对应,并为文件服务器提供文件的断点续传功能的程序。源(src)客户端可以为与产生新文件的源文件服务器相对应的客户端,该源客户端可以具备监听源文件服务器文件变化的功能。目标(dest)客户端可以为与具备文件同步需求的目标文件服务器相对应的客户端,该目标客户端可以具备将新产生的文件传输至目标文件服务器的功能。
文件服务器又称档案伺服器,该文件服务器可以为提供文件存储功能、文件发送功能、文件接收功能等文件基础处理功能的服务器。该文件服务器可以通过FTP、SMB、NFS中的一个或多个文件传输协议进行文件的传输。需要说明的是,上述文件传输协议能够实现文件传输、文件下载、文件目录列举等较为基础的文件功能,难以实现基于文件的运算等进阶功能。若要基于采用上述文件传输协议的文件服务器自身实现断点续传功能,需要对上述文件传输协议进行自定义修改。
源文件服务器可以为产生新文件的文件服务器,目标文件服务器可以为具备文件同步需求的文件服务器。可以理解地,在源文件服务器中产生新的新增文件的情况下,该新增文件要被同步至目标文件服务器。
图2为本公开实施例提供的一种数据传输的拓扑结构示意图,如图2所示,源文件服务器和源客户端之间通过第一链路通道进行文件传输,该第一链路通道可以为基于传输控制协议(Transmission Control Protocol,TCP)建立的链路通道。目标文件服务器和目标客户端之间通过第二链路通道进行文件传输,该第二链路通道可以为基于传输控制协议(Transmission Control Protocol,TCP)建立的链路通道。源客户端和目标客户端之间通过跨域通道进行数据传输,该跨域通道又称跨域过闸通道。
一种可选的实施方式中,可以通过图2所示的拓扑结构实现内网和外网之间的数据传输。具体地,源客户端为位于内网的客户端,目标客户端为位于外网的客户端;或者,目标客户端为位于内网的客户端,源客户端为位于外网的客户端;并且,源客户端和目标客户端之间通过跨域通道进行数据传输。
其中,内网可以理解为内部网络,该内网又称局域网,内网可以为预设区域内的电子设备或者预先设定的电子设备组成的网络。外网可以理解为外部网络,该外网又称广域网、公网等。源客户端和目标客户端可以为分别位于内网和外网的客户端。跨域通道可以为不满足同源测量的客户端之间进行数据传输的数据通道,本实施例对该跨域通道的类型等不做限制。
下面,对基于上述目标客户端、源客户端、目标文件服务器、源文件服务器实现的文件传输方法进行说明。在本实施例中,续传请求可以为源客户端将第一新增文件传输至目标文件服务器的过程中,网络发生中断,在网络恢复之后,源客户端生成并发送的用于继续传输该第一新增文件的请求。该网络发生中断可以包括源客户端和目标客户端之间的跨域通道发生中断,和/或目标客户端和目标服务器之间的第二链路通道发生中断。
第一新增文件可以为源客户端对应的源文件服务器中新增加的文件,本实施例对该第一新增文件的文件类型、文件大小等不做限制。该第一新增文件从源文件服务器经过源客户端、目标客户端传输至目标文件服务器。第一中间文件可以为第一新增文件传输至目标文件服务器落地过程中产生的临时文件。该第一中间文件可以理解为下载第一新增文件的过程中,第一新增文件尚未完全下载完成时,在目标文件服务器生成的临时文件。
在本公开实施例中,源客户端监听源文件服务器是否发生文件更新,若检测到源文件服务器中新增了第一新增文件,源客户端获取该第一新增文件,并将该第一新增文件通过目标客户端发送至目标文件服务器。在第一新增文件传输的过程中,第一新增文件在目标文件服务器中落地为实时根据完成传输的第一新增文件的部分数据确定的第一中间文件。若网络发生中断,则目标文件服务器中存储有未完成完整下载的第一新增文件,该未完成完整下载的第一新增文件即为第一中间文件。
在网络恢复之后,为了完成新增文件的下载,源客户端将传输未完成的第一中间文件的名称作为续传文件名,并根据该续传文件名生成续传请求,源客户端向目标客户端发送续传请求。目标客户端接收到该续传请求之后,根据该续传请求获取目标文件服务器中的第一中间文件。
在本公开一些实施例中,获取目标文件服务器中续传请求对应的第一中间文件,包括:确定续传请求携带的续传文件名;生成包含续传文件名的文件获取请求,并将文件获取请求发送至目标文件服务器,以使目标文件服务器确定与续传文件名一致的第一中间文件并发送第一中间文件至目标客户端;接收目标文件服务器发送的第一中间文件。
其中,续传文件名可以为第一新增文件的文件名,该续传文件名可以不包括扩展名。文件获取请求可以为用于获取与续传文件名的文件名称一致的文件的请求。
可以理解地,由于第一中间文件为第一新增文件在未完成全部传输的情况下生成的,该第一中间文件与第一新增文件的除扩展名之外的文件名可以相同。例如,第一中间文件可以的名称可以为big.dest.zip,其中,.dest.zip为扩展名;第一新增文件的名称可以为big.zip,其中,.zip为扩展名。可见,第一中间文件和第一新增文件的文件名均为big。
在本实施例中,目标客户端解析续传请求,得到该续传请求中包含的续传文件名。进一步地,目标客户端根据该续传文件名生成文件获取请求,并将该文件获取请求发送至目标文件服务器。目标文件服务器接收到文件获取请求之后,解析该文件获取请求,得到该续传文件名,在该续传文件名之后拼接表征文件尚未完全下载的下载拓展名,得到目标文件名,根据该目标文件名对该目标文件服务器进行搜索,得到文件名以及扩展名与目标文件名一致的第一中间文件,目标文件服务器将该第一中间文件发送至目标客户端。目标客户端接收目标文件服务器发送的第一中间文件。
步骤102,接收源客户端发送的第二中间文件;其中,第二中间文件为第二新增文件的部分文件,第二新增文件和第一新增文件在源客户端监听的源文件服务器中具备相同的文件路径,第二中间文件和第一中间文件的数据量相同。
其中,由于首次进行第一新增文件传输网络中断之后,直至网络恢复再次进行文件断点续传之间的时间段内,用户可能对源文件服务器中第一新增文件的文件内容进行修改,或者该第一新增文件的文件内容可能被误修改。可以理解地,若第一新增文件被修改,则该第二新增文件为修改后的第一新增文件,该第二新增文件与第一新增文件不相同。若第一新增文件未被修改,则该第二新增文件与第一新增文件相同。
第二中间文件可以为第二新增文件传输过程中产生的临时文件。该第二中间文件可以理解为下载第二新增文件的过程中,第二新增文件尚未完全下载完成时生成的临时文件。文件路径可以为文件的绝对路径,该文件路径可以包括文件夹路径、文件名、扩展名。
在本公开实施例中,源客户端确定源文件服务器中与第一新增文件的文件路径相同的第二新增文件,并进行第二新增文件至目标客户端的发送。源客户端可以将完整的第二新增文件发送至目标客户端,相应的,目标客户端可以接收第二新增文件的完整文件,并从头截取该第二新增文件,获得与第一中间文件的数据量相同的第二中间文件。或者,源客户端可以将第二新增文件的部分数据发送至目标客户端,相应的,目标客户端接收第二新增文件的部分文件,并从头截取该第二新增文件的部分文件,得到与第一中间文件的数据量相同的第二中间文件。
在本公开一些实施例中,接收源客户端发送的第二中间文件,包括:接收源客户端发送的第二文件数据,并基于第二文件数据生成第二候选文件;其中,第二文件数据为用于传输第二新增文件的数据;从头截取第二候选文件中数据量与第一数据量一致的文件,得到第二中间文件;其中,第一数据量表征第一中间文件占据的存储空间。
其中,第二文件数据可以理解为以数据流形式对第二新增文件进行传输的数据。
在本实施例中,由于通过网络进行数据量统计确定的文件的数据量并不准确,为了使目标客户端获取到与第一中间文件的第一数据量相同的第二中间文件。源客户端可以以第二文件数据的形式向目标客户端发送第二新增文件,并且该第二文件数据的数据总量大于第一数据量,并且该第二文件数据的数据总量小于或等于第二新增文件的数据量。目标客户端实时接收该第二文件数据,并基于接收的全部第二文件数据生成第二候选文件。可以理解地,用于第二文件数据的数据量大于第一数据量,因而基于该第二文件数据确定的第二候选文件的数据量大于第一数据量。进一步地,从该第二候选文件的首位字符进行截取,截取数据量与第一数据量相同的文件,得到第二中间文件,该第二中间文件与第一中间文件的数据量相同。
上述方案中,通过先获取第二候选文件,再对第二候选文件进行截取,获得了与第一中间文件的数据量相同的第二中间文件,相较于通过网络传输字节确定文件数据量的方法,该方法确定的中间文件的数据量更准确,为后续的中间文件的比对创造了基础,提高了后续能够基于第一中间文件进行数据传输的概率,提高了用户体验。
步骤103,若第一中间文件和第二中间文件一致,则向目标文件服务器发送第二新增文件中位于第二中间文件之后的续传数据,以使目标文件服务器根据第一中间文件和续传数据生成第二新增文件。
其中,续传数据可以为为了完成第二新增文件的传输继续发送的数据。该续传数据可以包括第二新增文件中,位于第二中间文件之后的数据片段。
在本实施例中,目标客户端可以通过字节的逐位比对或者预设校验算法等方法判断第一中间文件和第二中间文件是否一致。若第一中间文件和第二中间文件一致,说明在第二新增文件中,第一中间文件对应的数据部分未发生改变,可以基于目标文件服务器中现有的第一中间文件继续进行第二新增文件的传输。目标客户端可以接收源客户端发送的第二新增文件中数据顺序在第二中间文件之后的续传数据,并将该续传数据发送至目标文件服务器。
目标文件服务器在接收到续传数据之后,根据该续传数据对第一中间文件进行继续下载处理,直至接收到全部的续传数据,全部的续传数据完成第一中间文件的继续下载处理,得到第二新增文件,实现了目标文件服务器与源文件服务器的文件同步。
在本公开一些实施例中,第一中间文件和第二中间文件一致,包括:根据预设校验算法计算第一中间文件的第一校验值;根据预设校验算法计算第二中间文件的第二校验值;若第一校验值和第二校验值一致,则确定第一中间文件和第二中间文件一致。
其中,预设校验算法可以为预先设置的用于计算校验和的算法,该预设校验算法有多种,本实施例不做限制,例如,该预设校验算法可以包括消息摘要算法(MessageDigest Algorithm,MD5)、国密3算法中的任一种。校验值又称校验和。
在实施例中,目标客户端以预设校验算法对第一中间文件进行计算,得到第一校验值。并以预设校验算法对第二中间文件进行计算,得到第二校验值。若第一校验值和第二校验值相同,则说明其各自表征的第一中间文件和第二中间文件相同。
上述方案中,通过校验值高效的确定了第一中间文件和第二中间文件是否相同。并且,该校验值是新增文件的部分数据的校验值,避免了对完整的新增文件进行校验值的计算,减少了校验值的校验位数,提高了进行数据传输的效率。
本公开实施例提供的数据传输方法,包括:在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中续传请求对应的第一中间文件;其中,第一中间文件为第一新增文件中完成传输的部分数据生成的文件,续传请求为继续对第一新增文件进行传输的请求;接收源客户端发送的第二中间文件;其中,第二中间文件为第二新增文件的部分文件,第二新增文件和第一新增文件在源客户端监听的源文件服务器中具备相同的文件路径,第二中间文件和第一中间文件的数据量相同;若第一中间文件和第二中间文件一致,则向目标文件服务器发送第二新增文件中位于第二中间文件之后的续传数据,以使目标文件服务器根据第一中间文件和续传数据生成第二新增文件。
采用上述技术方案,目标客户端获取了目标文件服务器中已经落地的第一中间文件,并且接收了与第一中间文件的完整文件(即,第一新增文件)文件路径相同的第二新增文件的部分文件(即,第二中间文件),该第一中间文件和第二中间文件的数据量相同,具备可比性,目标客户端通过确定第一中间文件和第二中间文件一致,确定了新增文件未发生改变,因而能够基于之前接收的第一中间文件继续进行文件传输,从而通过增加源客户端和目标客户端,在不改变文件服务器自身的文件传输功能的情况下,实现了断点续传功能,并且由于文件服务器自身的传输功能未改变,无需为了传输功能的更新而进行文件服务器的数据迁移,避免了数据迁移过程中的数据泄露。
在本公开一些实施例中,该数据传输方法还包括:若第一中间文件和第二中间文件不一致,则向目标文件服务器发送第一中间文件的文件删除指令,以使目标文件服务器在接收到文件删除指令的情况下删除目标文件服务器中的第一中间文件;向目标文件服务器发送第二中间文件;接收源客户端发送的续传数据,向目标文件服务器发送续传数据。
其中,文件删除指令可以为指示进行文件删除的指令。
在本实施例中,目标客户端可以通过字节的逐位比对、预设校验算法等方法判断第一中间文件和第二中间文件是否一致。以预设校验算法为例,若通过预设校验算法确定的第一中间文件的第一校验值和通过预设校验算法确定的第二中间文件的第二校验值不同,说明第一中间文件和第二中间文件不同。因而基于当前目标文件服务器中的第一中间文件难以进行文件的断点续传。
进一步的,目标客户端向目标服务器发送第一中间文件的删除指令。目标服务器接收的删除指令之后,删除该删除指令对应的第一中间文件,并向目标客户端发送确认删除指令。目标客户端接收到该确认删除指令之后,向目标文件服务器发送第二中间文件,发送完第二中间文件之后,发送从源服务器接收的续传数据。目标文件服务器接收该第二中间文件以及续传数据,并根据该第二中间文件以及续传数据生成第二新增文件。
上述方案中,在确定第一中间文件和第二中间文件不同的情况下,无法基于目标文件服务器中已经存在的第一中间文件进行第二新增文件的断点续传,因而进行了目标文件服务器中第一中间文件的删除,并向目标文件服务器发送第二中间文件以及续传数据,将第二新增文件传输至目标文件服务器,实现了源文件服务器与目标文件服务器的文件同步。
图3为本公开实施例提供的另一种数据传输方法的流程示意图,如图3所示,在获取目标文件服务器中续传请求对应的第一中间文件之前,该数据传输方法还包括:
步骤301,接收源客户端发送的第一文件数据;其中,源客户端用于监听源文件服务器是否出现新增文件,第一新增文件为源文件服务器新增的文件,第一文件数据为用于传输第一新增文件的数据。
其中,第一文件数据可以理解为以数据流形式对第一新增文件进行传输的数据。
在本实施例中,源客户端监听源文件服务器是否发生文件新增,如果源客户端发现源文件服务器新增了第一新增文件,则向目标客户端发起同步链接,通过该同步连接能够建立源客户端和目标客户端之间的跨域通道。
在跨域通道建立成功之后,源客户端向源文件服务器发送第一新增文件的第一文件读取请求。源文件服务器接收到该第一文件读取请求之后,以数据流形式将该第一新增文件对应的第一文件数据通过跨域通道传输至目标客户端。目标客户端接收该第一文件数据。
步骤302,向目标文件服务器发送第一文件数据,以使目标服务器接收第一文件数据并基于第一文件数据生成第一中间文件。
目标客户端接收到第一文件数据之后,向目标客户端发送第一文件数据对应的第一文件落地请求,该第一文件落地请求用于指示目标文件服务器接收并存储第一文件数据。目标文件服务器接收到该第一文件落地请求之后,向目标客户端返回第一落地确认指令,该第一落地确认指令用于确认目标文件服务器能够接收并存储第一文件数据。
目标客户端接收第一落地确认指令之后,将从源客户端接收的第一文件数据发送至目标文件服务器。目标文件服务器接收到该第一文件数据之后,根据该第一文件数据生成第一中间文件。需要说明的是,该目标客户端和目标文件服务器并非同一台电子设备。
上述方案中,通过第一文件数据将第一新增文件的部分(即,第一中间文件)传输至目标文件服务器,为后续的断点续传创造了基础。
接下来通过一个具体的示例对本公开实施例中的数据传输方法,进行进一步说明。
图4为本公开实施例提供的又一种数据传输方法的流程示意图,如图4所示,该方法包括:
步骤401,源客户端监听源文件服务器并发现源文件服务器中新增第一新增文件,源客户端向目标客户端发起同步链接。
其中,通过同步链接能够建立源客户端和目标客户端之间的跨域通道。
步骤402,在跨域通道建立成功后,源客户端向源文件服务器发送第一文件读取请求以获取第一新增文件的第一文件数据,并将该第一文件数据通过跨域通道传输至目标客户端。
步骤403,目标客户端收到第一文件数据之后,向该目标文件服务器发送第一文件落地请求,以将第一文件数据同步至目标文件服务器。
步骤404,由于网络中断,第一文件数据的传输中断,在目标文件服务器落地有第一中间文件。
其中,网络连接中断包括源客户端和目标客户端之间的跨域通道中断、目标客户端和目标文件服务器之间的链路通道中断中的一个或多个。
对于源客户端和目标客户端之间的跨域通道中断,源客户端能够感知到该网络中断,但是由于在跨域通道中断的情况下,目标客户端无法返回结果,源客户端无法确定在目标文件服务器中已落地的第一中间文件的数据量。
对于目标客户端和目标文件服务器之间的链路通道中断,目标客户端可以向源客户端返回通过网络字节统计确定的第一中间文件的统计数据量,但是该统计数据量并不能准确的表示第一中间文件真实的第一数据量,因而源客户端仍然难以确定目标文件服务器中已落地的第一中间文件的数据量。
可见,上述两种网络中断场景中,源客户端都无法确认已落地的第一文中间文件的数据量,相对于相关技术中,传输的部分文件的数据量已知,基于该已知的数据量能够进行重放攻击,而在本实施例中,由于数据量并非已知,则基于该实施例避免了基于已知文件数据量的重放攻击。
步骤405,在网络恢复之后,源客户端向目标客户端发送续传请求,并执行跨域通道和链接通道的建立。
在网络恢复后,源客户端自动发起第二新增文件的传输重试并进行断点续传。
步骤406,目标客户端接收到续传请求后,获取目标文件服务器中已落地的第一中间文件,将该第一中间文件与源客户端传输的第二中间文件进行校验和比对。
其中,该校验和包括但不限于MD5、国密3中的任一种。
步骤407,若第一中间文件与第二中间文件的校验和相同,则目标客户端向目标文件服务器发送续传数据;若第一中间文件与第二中间文件的校验和不相同,则根据目标客户端默认配置,忽略第二新增文件或者覆盖第一中间文件。
图5为本公开实施例提供的一种应用于源客户端的数据传输方法的流程示意图,如图5所示,该方法包括:
步骤501,源客户端发送第一新增文件。
步骤502,建立跨域通道是否成功。若是,执行步骤503;否则,执行步骤506。
具体地,源客户端是否成功建立源客户端与目标客户端之间的跨域通道。
步骤503,通过跨域通道读取文件是否成功。若是,执行步骤504;否则,执行步骤505。
步骤504,与目标客户端同步文件是否成功。若是,执行步骤505;否则,执行步骤501。
步骤505,同步的文件是否通过检查。若是,执行步骤507;否则,执行步骤501。
步骤506,网络情况是否恢复。若是,执行步骤502;否则,执行步骤507
步骤507,结束。
图6为本公开实施例提供的一种应用于目标客户端的数据传输方法的流程示意图,如图6所示,该方法包括:
步骤601,目标客户端接收文件。
步骤602,解析传输协议是否成功。若是,执行步骤603;否则,执行步骤608。
步骤603,建立链路通道是否成功。若是,执行步骤604;否则,执行步骤608。
步骤604,是否能够正常进行文件同步。若是,执行步骤607;否则,执行步骤605。
步骤605,是否通过文件校验/对比。若是,执行步骤607;否则,执行步骤606。
步骤606,是否进行文件覆盖。若是,执行步骤607;否则,执行步骤609。其中,若不进行文件覆盖,可以忽略该新增的文件。
步骤607,文件同步是否成功。若是,执行步骤609;否则,执行步骤608。
步骤608,文件同步失败。
步骤609,完成文件处理。
步骤610,向源客户端返回结果。
示例而言,源客户端可以向目标端客户端发起对名称为big.zip的文件的同步。该big.zip的数据量假定为4吉字节。在big.zip的同步过程中,可能存在源客户端和目标客户端之间的跨域通道异常或者目标客户端与目标文件服务器之间的链路通道异常,进而导致同步失败。在该情况下,源客户端无法准确获取目标客户端已传输至目标文件服务器并落地的第一中间文件big.dest.zip的数据量,假定该big.dest.zip的数据量为N吉字节(0<N≤4)。
源客户端检测到同步失败后,发起失败重试。仍发送big.zip全部4GB的文件内容。目标客户端接收到新的同步数据后,先获取目标文件服务器中的big.dest.zip的文件内容,计算big.dest.zip的第一校验值。再根据big.dest.zip的大小,计算新的同步数据中与big.dest.zip大小相同的数据(即,第二中间数据)的第二校验值。需要说明的是,该第二中间数据在网络中进行检查,暂不落地至目标文件服务器。
如果第一校验值和第二校验值一致,则认为big.zip未发生修改,以追加第一中间文件的形式落地至目标文件服务器,直至同步完成。
如果第一校验值和第二校验值不一致,可能是用户已调整big.zip,或者big.zip被误改。可通过是否配置强制覆盖选项,重新落地第二新增文件或者不再落地该第二更新文件。
上述方案中,对文件服务器的原始系统架构的调整较小;并且,能够实现跨域的断点续传;此外,提供了安全的文件校验机制,提高了新增文件的安全性。
图7为本公开实施例提供的一种数据传输装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在电子设备中或者应用于目标客户端中,如图7所示,该装置包括:
获取模块701,用于在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中所述续传请求对应的第一中间文件;其中,所述第一中间文件为第一新增文件中完成传输的部分数据生成的文件,所述续传请求为继续对所述第一新增文件进行传输的请求;
第一接收模块702,用于接收所述源客户端发送的第二中间文件;其中,所述第二中间文件为第二新增文件的部分文件,所述第二新增文件和所述第一新增文件在所述源客户端监听的源文件服务器中具备相同的文件路径,所述第二中间文件和所述第一中间文件的数据量相同;
第一发送模块703,用于若所述第一中间文件和所述第二中间文件一致,则向所述目标文件服务器发送所述第二新增文件中位于所述第二中间文件之后的续传数据,以使所述目标文件服务器根据所述第一中间文件和所述续传数据生成所述第二新增文件。
可选的,所述获取模块701,用于:
确定所述续传请求携带的续传文件名;
生成包含所述续传文件名的文件获取请求,并将所述文件获取请求发送至所述目标文件服务器,以使所述目标文件服务器确定与所述续传文件名一致的所述第一中间文件并发送所述第一中间文件至所述目标客户端;
接收所述目标文件服务器发送的所述第一中间文件。
可选的,所述第一接收模块702,用于:
接收所述源客户端发送的第二文件数据,并基于所述第二文件数据生成第二候选文件;其中,所述第二文件数据为用于传输所述第二新增文件的数据;
从头截取所述第二候选文件中数据量与第一数据量一致的文件,得到所述第二中间文件;其中,所述第一数据量表征所述第一中间文件占据的存储空间。
可选的,所述第一发送模块703,用于:
根据预设校验算法计算所述第一中间文件的第一校验值;
根据所述预设校验算法计算所述第二中间文件的第二校验值;
若所述第一校验值和所述第二校验值一致,则确定所述第一中间文件和所述第二中间文件一致。
可选的,所述装置还包括:
第二发送模块,用于若所述第一中间文件和所述第二中间文件不一致,则向所述目标文件服务器发送所述第一中间文件的文件删除指令,以使所述目标文件服务器在接收到所述文件删除指令的情况下删除所述目标文件服务器中的所述第一中间文件;
第三发送模块,用于向所述目标文件服务器发送所述第二中间文件;
第二接收模块,用于接收所述源客户端发送的所述续传数据,向所述目标文件服务器发送所述续传数据。
可选的,所述装置还包括:
第三接收模块,用于在所述获取目标文件服务器中所述续传请求对应的第一中间文件之前,接收所述源客户端发送的第一文件数据;其中,所述源客户端用于监听所述源文件服务器是否出现新增文件,所述第一新增文件为所述源文件服务器新增的文件,所述第一文件数据为用于传输所述第一新增文件的数据;
第四发送模块,用于向所述目标文件服务器发送所述第一文件数据,以使所述目标服务器接收所述第一文件数据并基于所述第一文件数据生成所述第一中间文件。
可选的,所述源客户端为位于内网的客户端,所述目标客户端为位于外网的客户端;或者,所述目标客户端为位于所述内网的客户端,所述源客户端为位于所述外网的客户端;所述源客户端和所述目标客户端之间通过跨域通道进行数据传输。
本公开实施例所提供的数据传输装置可执行本公开任意实施例所提供的数据传输方法,具备执行方法相应的功能模块和有益效果。
图8为本公开实施例提供的一种电子设备的结构示意图。如图8所示,电子设备800包括一个或多个处理器801和存储器802。
处理器801可以是中央处理单元(CPU)或者具有数据传输能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备800中的其他组件以执行期望的功能。
存储器802可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器801可以运行所述程序指令,以实现上文所述的本公开的实施例的数据传输方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备800还可以包括:输入装置803和输出装置804,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
此外,该输入装置803还可以包括例如键盘、鼠标等等。
该输出装置804可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置804可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图8中仅示出了该电子设备800中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备800还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据传输方法。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本公开实施例所提供的数据传输方法。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据传输方法,其特征在于,应用于目标客户端,包括:
在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中所述续传请求对应的第一中间文件;其中,所述第一中间文件为第一新增文件中完成传输的部分数据生成的文件,所述续传请求为继续对所述第一新增文件进行传输的请求;
接收所述源客户端发送的第二中间文件;其中,所述第二中间文件为第二新增文件的部分文件,所述第二新增文件和所述第一新增文件在所述源客户端监听的源文件服务器中具备相同的文件路径,所述第二中间文件和所述第一中间文件的数据量相同;
若所述第一中间文件和所述第二中间文件一致,则向所述目标文件服务器发送所述第二新增文件中位于所述第二中间文件之后的续传数据,以使所述目标文件服务器根据所述第一中间文件和所述续传数据生成所述第二新增文件。
2.根据权利要求1所述的方法,其特征在于,所述获取目标文件服务器中所述续传请求对应的第一中间文件,包括:
确定所述续传请求携带的续传文件名;
生成包含所述续传文件名的文件获取请求,并将所述文件获取请求发送至所述目标文件服务器,以使所述目标文件服务器确定与所述续传文件名一致的所述第一中间文件并发送所述第一中间文件至所述目标客户端;
接收所述目标文件服务器发送的所述第一中间文件。
3.根据权利要求1所述的方法,其特征在于,所述接收所述源客户端发送的第二中间文件,包括:
接收所述源客户端发送的第二文件数据,并基于所述第二文件数据生成第二候选文件;其中,所述第二文件数据为用于传输所述第二新增文件的数据;
从头截取所述第二候选文件中数据量与第一数据量一致的文件,得到所述第二中间文件;其中,所述第一数据量表征所述第一中间文件占据的存储空间。
4.根据权利要求1所述的方法,其特征在于,所述第一中间文件和所述第二中间文件一致,包括:
根据预设校验算法计算所述第一中间文件的第一校验值;
根据所述预设校验算法计算所述第二中间文件的第二校验值;
若所述第一校验值和所述第二校验值一致,则确定所述第一中间文件和所述第二中间文件一致。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述第一中间文件和所述第二中间文件不一致,则向所述目标文件服务器发送所述第一中间文件的文件删除指令,以使所述目标文件服务器在接收到所述文件删除指令的情况下删除所述目标文件服务器中的所述第一中间文件;
向所述目标文件服务器发送所述第二中间文件;
接收所述源客户端发送的所述续传数据,向所述目标文件服务器发送所述续传数据。
6.根据权利要求1所述的方法,其特征在于,在所述获取目标文件服务器中所述续传请求对应的第一中间文件之前,所述方法还包括:
接收所述源客户端发送的第一文件数据;其中,所述源客户端用于监听所述源文件服务器是否出现新增文件,所述第一新增文件为所述源文件服务器新增的文件,所述第一文件数据为用于传输所述第一新增文件的数据;
向所述目标文件服务器发送所述第一文件数据,以使所述目标服务器接收所述第一文件数据并基于所述第一文件数据生成所述第一中间文件。
7.根据权利要求1所述的方法,其特征在于,所述源客户端为位于内网的客户端,所述目标客户端为位于外网的客户端;或者,所述目标客户端为位于所述内网的客户端,所述源客户端为位于所述外网的客户端;
所述源客户端和所述目标客户端之间通过跨域通道进行数据传输。
8.一种数据传输装置,其特征在于,包括:
获取模块,用于在接收到源客户端发送的续传请求的情况下,获取目标文件服务器中所述续传请求对应的第一中间文件;其中,所述第一中间文件为第一新增文件中完成传输的部分数据生成的文件,所述续传请求为继续对所述第一新增文件进行传输的请求;
第一接收模块,用于接收所述源客户端发送的第二中间文件;其中,所述第二中间文件为第二新增文件的部分文件,所述第二新增文件和所述第一新增文件在所述源客户端监听的源文件服务器中具备相同的文件路径,所述第二中间文件和所述第一中间文件的数据量相同;
第一发送模块,用于若所述第一中间文件和所述第二中间文件一致,则向所述目标文件服务器发送所述第二新增文件中位于所述第二中间文件之后的续传数据,以使所述目标文件服务器根据所述第一中间文件和所述续传数据生成所述第二新增文件。
9.一种电子设备,其特征在于,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求1-7中任一所述的数据传输方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-7中任一所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310779511.7A CN116668433A (zh) | 2023-06-28 | 2023-06-28 | 数据传输方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310779511.7A CN116668433A (zh) | 2023-06-28 | 2023-06-28 | 数据传输方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116668433A true CN116668433A (zh) | 2023-08-29 |
Family
ID=87719123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310779511.7A Pending CN116668433A (zh) | 2023-06-28 | 2023-06-28 | 数据传输方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116668433A (zh) |
-
2023
- 2023-06-28 CN CN202310779511.7A patent/CN116668433A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101802920B1 (ko) | 가상 머신 시스템 디스크 스냅 샷의 생성 방법 및 장치 | |
WO2021051563A1 (zh) | 目标数据归档方法、装置、电子设备及计算机非易失性可读存储介质 | |
WO2021139238A1 (zh) | 云业务应用升级方法、装置、电子设备和存储介质 | |
US8549165B2 (en) | Processing devices and methods for transmitting and receiving data | |
CN110162334B (zh) | 一种代码管理方法、装置及存储介质 | |
US20230376408A1 (en) | Application programming interface test method and apparatus | |
CN109391673A (zh) | 一种管理更新文件的方法、系统及终端设备 | |
CN112468511B (zh) | 文件传输方法和装置 | |
US11307790B2 (en) | Method, device, and computer program product for managing data placement | |
CN104079623A (zh) | 多级云存储同步控制方法及系统 | |
CN112749123A (zh) | 用于管理文件系统的方法、设备和计算机程序产品 | |
CN116668433A (zh) | 数据传输方法、装置、设备及介质 | |
CN114157485A (zh) | 一种资源访问方法、装置和电子设备 | |
CN111596953B (zh) | 版本管理系统、开发数据传输控制方法及相关装置 | |
CN113553488A (zh) | 搜索引擎中索引数据的更新方法、装置、电子设备及介质 | |
CN114172894A (zh) | 数据传输方法、装置、服务器和计算机设备 | |
US10819614B2 (en) | Network monitoring apparatus and network monitoring method | |
CN113407498A (zh) | 一种数据同步方法、装置、云平台、系统及存储介质 | |
CN113032477A (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
CN111107143A (zh) | 一种网络文件传输检测方法、装置和系统 | |
CN112615918B (zh) | 网络管理系统及其信息同步方法 | |
CN114268624B (zh) | 版本文件传输方法、装置及服务器 | |
CN111125001A (zh) | 快照复制方法、电子设备和计算机程序产品 | |
RU2802373C1 (ru) | Системы и способы получения информации сети радиодоступа | |
US20230370959A1 (en) | Systems and methods for retrieving ran information |
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 |