掌桥专利:专业的专利平台
掌桥专利
首页

文件传输方法、装置及电子设备

文献发布时间:2024-04-18 19:58:26


文件传输方法、装置及电子设备

技术领域

本申请涉及数据处理技术领域,尤其涉及一种文件传输方法、装置及电子设备。

背景技术

目前,用于文件传输的工具有很多,例如,电子邮箱、网盘、文件传输(FileTransfer Protocol,FTP)工具等。上述工具,针对大文件数据,可能存在传输中断导致传输失败的情况,文件传输失败率较高,文件传输效率较差。

发明内容

本申请旨在至少在一定程度上解决相关技术中的技术问题之一。

本申请提出一种文件传输方法、装置及电子设备,通过消息中间件来传输文件,实现传输中断后能够断点续传,避免传输失败,降低传输失败率,且提高文件传输效率。

本申请第一方面实施例提出了一种文件传输方法,所述方法包括:获取源文件系统的已发布文件数据、所述源文件系统的源消息中间件的源地址、所述已发布文件数据的文件日志、订阅所述已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据所述文件日志,确定所述已发布文件数据中的待传输文件数据;将所述待传输文件数据以及所述目标地址写入所述源消息中间件中,用于指示所述源消息中间件按照所述目标地址将所述待传输文件数据传输至所述目标消息中间件中。

本申请实施例的文件传输方法,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件日志,确定已发布文件数据中的待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率。

本申请第二方面实施例提出了一种文件传输方法,所述方法包括:获取目标文件系统的目标消息中间件中的多个文件数据;所述文件数据包括,文件标识;所述多个文件数据,为与所述目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;根据所述多个文件数据,确定所述目标文件系统的订阅文件数据;将所述订阅文件数据写入所述目标文件系统中。

本申请实施例的文件传输方法,通过获取目标文件系统的目标消息中间件中的多个文件数据;文件数据包括,文件标识;多个文件数据,为与目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;根据多个文件数据,确定目标文件系统的订阅文件数据;将订阅文件数据写入目标文件系统中,其中,结合消息中间件确保大文件数据传输中断后能够断点续传,确保对大文件数据的传输成功率,进而提高文件传输效率。

本申请第三方面实施例提出了一种文件传输装置,所述装置包括:获取模块,用于获取源文件系统的已发布文件数据、所述源文件系统的源消息中间件的源地址、所述已发布文件数据的文件日志、订阅所述已发布文件数据的目标文件系统的目标消息中间件的目标地址;第一确定模块,用于根据所述文件日志,确定所述已发布文件数据中的待传输文件数据;写入模块,用于将所述待传输文件数据以及所述目标地址写入所述源消息中间件中,用于指示所述源消息中间件按照所述目标地址将所述待传输文件数据传输至所述目标消息中间件中。

本申请实施例的文件传输装置,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件日志,确定已发布文件数据中的待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率。

本申请第四方面实施例提出了一种文件传输装置,所述装置包括:获取模块,用于获取目标文件系统的目标消息中间件中的多个文件数据;所述文件数据包括,文件标识;所述多个文件数据,为与所述目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;确定模块,用于根据所述多个文件数据,确定所述目标文件系统的订阅文件数据;写入模块,用于将所述订阅文件数据写入所述目标文件系统中。

本申请实施例的文件传输装置,通过获取目标文件系统的目标消息中间件中的多个文件数据;文件数据包括,文件标识;多个文件数据,为与目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;根据多个文件数据,确定目标文件系统的订阅文件数据;将订阅文件数据写入目标文件系统中,其中,结合消息中间件确保大文件数据传输中断后能够断点续传,确保对大文件数据的传输成功率,进而提高文件传输效率。

本申请第五方面实施例提出了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面实施例提出的文件传输方法,或者,执行本申请第二方面实施例提出的文件传输方法。

本申请第六方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本申请第一方面实施例提出的文件传输方法;或者,执行本申请第二方面实施例提出的文件传输方法。

本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。

附图说明

本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本申请实施例一所提供的文件传输方法的流程示意图;

图2为本申请实施例二所提供的文件传输方法的流程示意图;

图3为本申请实施例三所提供的文件传输方法的流程示意图;

图4为源文件系统、源服务器、源消息中间件、目标消息中间件、目标服务器、目标文件系统的交互示意图;

图5为本申请实施例四所提供的文件传输装置的结构示意图;

图6为本申请实施例五所提供的文件传输装置的结构示意图;

图7示出了适于用来实现本申请实施方式的示例性计算机设备的框图。

具体实施方式

下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。

目前,用于文件传输的工具有很多,例如,电子邮箱、网盘、文件传输(FileTransfer Protocol,FTP)工具等。上述工具,针对大文件数据,可能存在传输中断导致传输失败的情况,文件传输失败率较高,文件传输效率较差。

因此,本申请主要针对相关技术中针对大文件数据,可能存在传输中断导致传输失败的情况,文件传输失败率较高,文件传输效率较差的技术问题,提出一种文件传输方法、装置及电子设备。

本申请实施例的文件传输方法,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件日志,确定已发布文件数据中的待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率。

下面参考附图描述本申请实施例的文件传输方法、装置及电子设备。

图1为本申请实施例一所提供的文件传输方法的流程示意图。

本申请实施例以该文件传输方法被配置于文件传输装置中来举例说明,该文件传输装置可以应用于任一电子设备中,或者,应用于电子设备中的CPU处理器中,以使该电子设备可以执行文件传输功能。

其中,电子设备可以为源文件系统中的服务器、硬件设备等;或者,电子设备可以为与源文件系统通信的服务器、硬件设备等。其中,与源文件系统通信的服务器,例如,源文件传输系统等。其中,以下实施例中,以文件传输装置为服务器为例进行说明。

另外,需要说明的是,文件传输装置,还可以为服务器中执行文件传输功能的软件、程序或者组件等,可以根据实际需要进行设定。

如图1所示,该文件传输方法可以包括以下步骤:

步骤101,获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址。

在本公开实施例中,源文件系统,可以为发布有文件数据的文件系统。目标文件系统,可以为订阅有其他文件系统发布的文件数据的文件系统。其中,一个文件系统可以仅为源文件系统、仅为目标文件系统、或者同时为源文件系统和目标文件系统。其中,一个文件系统,作为源文件系统时发布的文件数据,与作为目标文件系统时订阅的文件数据,不同。

在本公开实施例中,一个源文件系统,可以向确定的一个或者多个目标文件系统发布文件数据;或者,向不确定的一个或者多个目标文件系统发布文件数据。即,源文件系统,可以限制订阅该文件数据的目标文件系统,也可以不限制订阅该文件数据的目标文件系统。

其中,源文件系统发布的文件数据可以为多个。订阅不同的文件数据的目标文件系统,可以相同或者不同。

在本公开实施例中,源文件系统发布的文件数据中,可以包含单个文件、多个文件、单个文件夹或者多个文件夹等,不做限定。

在本公开实施例中,在步骤101之前,服务器可以根据源文件系统的请求,发布文件数据信息;以及接收目标文件系统通过对应的服务器返回的目标消息中间件的目标地址;其中,基于目标地址,源文件系统的源消息中间件,可以将其中写入的文件数据传输至目标消息中间件。

步骤102,根据文件日志,确定已发布文件数据中的待传输文件数据。

在本公开实施例中,文件日志中可以包括,文件数据更新记录以及文件数据传输记录。文件数据更新记录中可以包括,文件数据更新时间、最新的文件数据大小、最新的文件数据的第一散列值等。其中,需要说明的是,文件数据更新时间可以有多个。每个文件数据更新时间,可以对应有该时间上的最新的文件数据大小和最新的文件数据的第一散列值,即,每个文件数据更新时间对应有一个文件数据大小和第一散列值。

在本公开实施例中,文件数据传输记录中可以包括,文件数据传输时间、传输的文件数据大小、传输的文件数据的第二散列值等。其中,需要说明的是,文件数据传输时间可以有多个。每个文件数据传输时间,可以对应有该时间上传输的文件数据大小和传输的文件数据的第二散列值,即,每个文件数据传输时间对应有一个文件数据大小和第二散列值。

在本公开实施例中,服务器根据文件数据更新记录以及文件数据传输记录,可以确定最新更新的文件数据是否有对应的传输记录;若最新更新的文件数据没有对应的传输记录,则确定存在待传输文件数据;若最新更新的文件数据有对应的传输记录,则确定可能不存在待传输文件数据。

在本公开实施例中,待传输文件数据,可以是已发布文件数据,或者,可以是已发布文件数据中的增量数据。其中,第一散列值和第二散列值的计算算法例如可以为,MD5信息摘要算法(MD5 Message-Digest Algorithm)。

在本公开实施例中,为了确保大文件数据的传输成功率,可以在将待传输文件数据写入源消息中间件中之前,对待传输文件数据进行拆分处理。对应的,在步骤102之后,服务器可以执行以下过程:根据目标文件系统的文件数据大小限制、源消息中间件的文件数据大小限制以及目标消息中间件的文件数据大小限制,确定参考文件数据大小;按照参考文件数据大小,对待传输文件数据进行拆分处理,得到多个待传输文件数据;将多个待传输文件数据以及目标地址,依次写入源消息中间件中。

其中,参考文件数据大小,例如可以为2G等。

步骤103,将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中。

在本公开实施例中,源消息中间件中写入待传输文件数据以及目标地址之后,源消息中间件可以执行以下过程:确定目标地址对应的目标消息中间件;确定与目标消息中间件之间是否建立有通信连接;若与目标消息中间件之间未建立有通信连接,则先建立与目标消息中间件之间的通信连接;在与目标消息中间件之间建立有通信连接的情况下,将待传输文件数据以消息的形式传输至目标消息中间件;若传输过程中由于网络环境等原因传输中断,则可以在网络环境恢复后进行断点传输。其中,源消息中间件通过对待传输文件数据的分片处理,来实现断点传输,即从传输失败的分片开始继续进行传输。

在本公开实施例中,为了提高待传输文件数据的传输速率,服务器还可以执行以下过程:根据当前网络环境,确定源消息中间件的分片大小以及单次传输的分片数量;将分片大小以及单次传输的分片数量发送至源消息中间件,用于指示源消息中间件按照分片大小以及单次传输的分片数量,对待传输文件数据进行传输处理。

其中,当前网络环境越差,为了减少重传的分片数量,可以减小分片大小;当前网络环境越强,可以增大分片大小。其中,当前网络环境越差,单次传输的分片数量可以越小;当前网络环境越强,单次传输的分片数量可以越大。

其中,在服务器设置分片大小以及单次传输的分片数量的情况下,为了确保传输准确度,源消息中间件,可以针对每个分片,设置分片传输序列以及校验码;使得目标消息中间件在接收到分片后,可以根据校验码对分片进行校验,校验接收到的分片是否完整以及是否正确;若接收到的分片不完整或者不正确,则可以请求源消息中间件重新传输该分片;若接收到所有的完整且正确的分片,可以基于分片传输序列,对接收到的多个分片进行组合,以得到待传输文件数据。其中,校验码例如可以为,循环冗余校验码(CyclicRedundancy Check,CRC)32校验码。

在本公开实施例中,步骤103之后,服务器还可以执行以下过程:对已发布文件数据的文件日志进行更新处理,例如,在文件日志的文件数据传输记录中添加,此次写入到源消息中间件的写入时间、写入后最新的文件数据大小、最新的文件数据的第二散列值等。

本申请实施例的文件传输方法,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件日志,确定已发布文件数据中的待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率。

图2为本申请实施例二所提供的文件传输方法的流程示意图。

本申请实施例以该文件传输方法被配置于文件传输装置中来举例说明,该文件传输装置可以应用于任一电子设备中,或者,应用于电子设备中的CPU处理器中,以使该电子设备可以执行文件传输功能。

其中,电子设备可以为源文件系统中的服务器、硬件设备等;或者,电子设备可以为与源文件系统通信的服务器、硬件设备等。其中,与源文件系统通信的服务器,例如,源文件传输系统等。其中,以下实施例中,以文件传输装置为服务器为例进行说明。

另外,需要说明的是,文件传输装置,还可以为服务器中执行文件传输功能的软件、程序或者组件等,可以根据实际需要进行设定。

如图2所示,该文件传输方法可以包括以下步骤:

步骤201,获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址。

步骤202,根据文件数据更新记录以及文件数据传输记录,确定已发布文件数据是否需要进行传输处理。

在本公开实施例中,服务器执行步骤202的过程例如可以为,确定文件数据更新记录与所述文件数据传输记录是否一致,以及强制传输开关是否开启;在文件数据更新记录与文件数据传输记录不一致的情况下,或者,在文件数据更新记录与文件数据传输记录一致且强制传输开关开启的情况下,确定已发布文件数据需要进行传输处理;在文件数据更新记录与文件数据传输记录一致且强制传输开关未开启的情况下,确定已发布文件数据不需要进行传输处理。

其中,强制传输开关是否开启,可以根据已发布文件数据是否频繁更新确定。若已发布文件数据更新频繁,则可以开启强制传输开关;若已发布文件数据更新不频繁,例如,更新周期大于预设周期阈值,则可以关闭强制传输开关。

在本公开实施例中,文件数据更新记录中可以包括,文件数据更新时间、最新的文件数据大小、最新的文件数据的第一散列值等。文件数据传输记录中可以包括,文件数据传输时间、传输的文件数据大小、传输的文件数据的第二散列值等。对应的,服务器确定文件数据更新记录与所述文件数据传输记录是否一致的过程例如可以为,获取文件数据更新记录中的文件数据更新时间、最新的文件数据大小、最新的文件数据的第一散列值;获取文件数据传输记录中的文件数据传输时间、传输的文件数据大小、传输的文件数据的第二散列值;在文件数据更新时间与文件数据传输时间不一致、最新的文件数据大小与传输的文件数据大小不一致、或者第一散列值与第二散列值不一致的情况下,确定文件数据更新记录与文件数据传输记录不一致;在文件数据更新时间与文件数据传输时间一致,且最新的文件数据大小与传输的文件数据大小一致,且第一散列值与第二散列值一致的情况下,确定文件数据更新记录与文件数据传输记录一致。

步骤203,在已发布文件数据需要进行传输处理的情况下,结合已发布文件数据的文件数据大小,确定待传输文件数据。

在本公开实施例中,服务器执行步骤203的过程例如可以为,在已发布文件数据的文件数据大小小于或者等于第一数据量阈值的情况下,将已发布文件数据作为待传输文件数据;在已发布文件数据的文件数据大小大于第一数据量阈值的情况下,确定已发布文件数据相对于目标文件系统中传输的文件数据的增量文件数据;将增量文件数据作为待传输文件数据。

其中,服务器可以结合数据镜像备份工具rsync等来确定增量文件数据。其中,确定增量文件数据的过程例如可以为,服务器结合文件数据更新记录确定最新的已发布文件数据;服务器结合文件数据传输记录确定最新传输的文件数据;将最新的已发布文件数据与最新传输的文件数据进行比对,确定最新的已发布文件数据相对于最新传输的文件数据的增量文件数据。

步骤204,将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中。

本申请实施例的文件传输方法,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件数据更新记录以及文件数据传输记录,确定已发布文件数据是否需要进行传输处理;在已发布文件数据需要进行传输处理的情况下,结合已发布文件数据的文件数据大小,确定待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率;其中,待传输文件数据的准确确定,可以进一步提高文件传输效率。

图3为本申请实施例三所提供的文件传输方法的流程示意图。

本申请实施例以该文件传输方法被配置于文件传输装置中来举例说明,该文件传输装置可以应用于任一电子设备中,或者,应用于电子设备中的CPU处理器中,以使该电子设备可以执行文件传输功能。

其中,电子设备可以为目标文件系统中的服务器、硬件设备等;或者,电子设备可以为与目标文件系统通信的服务器、硬件设备等。其中,与目标文件系统通信的服务器,例如,目标文件传输系统等。其中,以下实施例中,以文件传输装置为服务器为例进行说明。

另外,需要说明的是,文件传输装置,还可以为服务器中执行文件传输功能的软件、程序或者组件等,可以根据实际需要进行设定。

如图3所示,该文件传输方法可以包括以下步骤:

步骤301,获取目标文件系统的目标消息中间件中的多个文件数据;文件数据包括,文件标识;多个文件数据,为与目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到。

在本公开实施例中,源文件系统,可以为发布有文件数据的文件系统。目标文件系统,可以为订阅有其他文件系统发布的文件数据的文件系统。其中,一个文件系统可以仅为源文件系统、仅为目标文件系统、或者同时为源文件系统和目标文件系统。其中,一个文件系统,作为源文件系统时发布的文件数据,与作为目标文件系统时订阅的文件数据,不同。

在本公开实施例中,一个源文件系统,可以向确定的一个或者多个目标文件系统发布文件数据;或者,向不确定的一个或者多个目标文件系统发布文件数据。即,源文件系统,可以限制订阅该文件数据的目标文件系统,也可以不限制订阅该文件数据的目标文件系统。

其中,源文件系统发布的文件数据可以为多个。订阅不同的文件数据的目标文件系统,可以相同或者不同。

在本公开实施例中,源文件系统发布的文件数据中,可以包含单个文件、多个文件、单个文件夹或者多个文件夹等,不做限定。

在本公开实施例中,在步骤301之前,服务器可以接收源文件系统通过对应的服务器发布的文件数据信息;返回目标文件系统的目标消息中间件的目标地址。其中,文件数据信息中可以携带文件数据在源文件系统中的存储地址。

在本公开实施例中,目标消息中间件与源消息中间件通信,获取文件数据的过程例如可以为,在接收到源消息中间件传输的分片后,确定分片对应的分片传输序列以及校验码;结合校验码对接收的分片进行校验处理,确定分片是否完整以及是否正确;若确定分片不完整或者不正确,则请求源消息中间件重新传输该分片;若接收到所有的完整且正确的分片,则基于各分片对应的分片传输序列,对接收到的各分片进行组合,以得到待传输文件数据。其中,校验码例如可以为,循环冗余校验码(Cyclic Redundancy Check,CRC)32校验码。

步骤302,根据多个文件数据,确定目标文件系统的订阅文件数据。

在本公开实施例中,服务器执行步骤302的过程例如可以为,针对多个文件数据中的每个文件标识,在多个文件数据中具有文件标识的目标文件数据的数量为单个的情况下,将目标文件数据,作为订阅文件数据;在多个文件数据中具有文件标识的目标文件数据的数量为多个的情况下,对多个目标文件数据进行组合处理,得到组合文件数据;将组合文件数据,作为订阅文件数据。其中,订阅文件数据,即,源文件系统的已发布文件数据。

步骤303,将订阅文件数据写入目标文件系统中。

本申请实施例的文件传输方法,通过获取目标文件系统的目标消息中间件中的多个文件数据;文件数据包括,文件标识;多个文件数据,为与目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;根据多个文件数据,确定目标文件系统的订阅文件数据;将订阅文件数据写入目标文件系统中,其中,结合消息中间件确保大文件数据传输中断后能够断点续传,确保对大文件数据的传输成功率,进而提高文件传输效率。

以下举例进行说明。如图4所示,为源文件系统、源服务器、源消息中间件、目标消息中间件、目标服务器、目标文件系统的交互示意图。在图4中,包括以下步骤:(1)源服务器(源文件系统对应的服务器,例如,源sync)与目标服务器(目标文件系统对应的服务器,例如,目标sync)交互,确定源文件系统与目标文件系统之间的文件数据订阅关系。其中,文件数据例如,文件夹等。(2)源服务器循环读取文件夹文件(已发布文件数据)及传输日志(文件日志);进而确定是否传输过文件数据,以及是否需要传输文件数据。(3)需要传输文件数据时,源服务器与目标服务器交互,确定待传输文件数据(例如,可以采用增量以及块位置表示)。(4)对待传输文件数据(大文件)进行分段;将分段组装成消息,并设置传输分片大小。(5)将消息写入源消息中间件(例如,源mq);并记录文件传输日志。(6)源消息中间件确定与目标消息中间件是否建立连接;若未建立连接,则建立连接。(7)源消息中间件按照分片大小传输(1倍或者n倍分片大小),传输至目标队列(目标消息中间件);目标消息中间件返回成功一否,并记录源分片序号(分片传输序列)。(8)目标消息中间件读取完整分段消息,对消息进行组装还原成大文件,写入目标系统(目标文件系统)。

图5为本申请实施例四所提供的文件传输装置的结构示意图。

如图5所示,该文件传输装置500,可以包括:获取模块510、第一确定模块520和写入模块530。

其中,获取模块510,用于获取源文件系统的已发布文件数据、所述源文件系统的源消息中间件的源地址、所述已发布文件数据的文件日志、订阅所述已发布文件数据的目标文件系统的目标消息中间件的目标地址;第一确定模块520,用于根据所述文件日志,确定所述已发布文件数据中的待传输文件数据;写入模块530,用于将所述待传输文件数据以及所述目标地址写入所述源消息中间件中,用于指示所述源消息中间件按照所述目标地址将所述待传输文件数据传输至所述目标消息中间件中。

进一步地,在本申请实施例的一种可能的实现方式中,所述文件日志包括,文件数据更新记录以及文件数据传输记录;所述第一确定模块520包括:第一确定单元和第二确定单元;所述第一确定单元,用于根据所述文件数据更新记录以及所述文件数据传输记录,确定所述已发布文件数据是否需要进行传输处理;所述第二确定单元,用于在所述已发布文件数据需要进行传输处理的情况下,结合所述已发布文件数据的文件数据大小,确定所述待传输文件数据。

进一步地,在本申请实施例的一种可能的实现方式中,所述第一确定单元具体用于,确定所述文件数据更新记录与所述文件数据传输记录是否一致,以及强制传输开关是否开启;在所述文件数据更新记录与所述文件数据传输记录不一致的情况下,或者,在所述文件数据更新记录与所述文件数据传输记录一致且所述强制传输开关开启的情况下,确定所述已发布文件数据需要进行传输处理;在所述文件数据更新记录与所述文件数据传输记录一致且所述强制传输开关未开启的情况下,确定所述已发布文件数据不需要进行传输处理。

进一步地,在本申请实施例的一种可能的实现方式中,所述第一确定单元具体用于,获取所述文件数据更新记录中的文件数据更新时间、最新的文件数据大小、最新的文件数据的第一散列值;获取所述文件数据传输记录中的文件数据传输时间、传输的文件数据大小、传输的文件数据的第二散列值;在所述文件数据更新时间与所述文件数据传输时间不一致、所述最新的文件数据大小与所述传输的文件数据大小不一致、或者所述第一散列值与所述第二散列值不一致的情况下,确定所述文件数据更新记录与所述文件数据传输记录不一致;在所述文件数据更新时间与所述文件数据传输时间一致,且所述最新的文件数据大小与所述传输的文件数据大小一致,且所述第一散列值与所述第二散列值一致的情况下,确定所述文件数据更新记录与所述文件数据传输记录一致。

进一步地,在本申请实施例的一种可能的实现方式中,所述第二确定单元具体用于,在所述已发布文件数据的文件数据大小小于或者等于第一数据量阈值的情况下,将所述已发布文件数据作为所述待传输文件数据;在所述已发布文件数据的文件数据大小大于所述第一数据量阈值的情况下,确定所述已发布文件数据相对于所述目标文件系统中传输的文件数据的增量文件数据;将所述增量文件数据作为所述待传输文件数据。

进一步地,在本申请实施例的一种可能的实现方式中,所述装置还包括:第二确定模块和发送模块;所述第二确定模块,用于根据当前网络环境,确定源消息中间件的分片大小以及单次传输的分片数量;所述发送模块,用于将所述分片大小以及单次传输的分片数量发送至所述源消息中间件,用于指示所述源消息中间件按照所述分片大小以及所述单次传输的分片数量,对所述待传输文件数据进行传输处理。

进一步地,在本申请实施例的一种可能的实现方式中,所述装置还包括:第三确定模块和拆分处理模块;所述第三确定模块,用于根据所述目标文件系统的文件数据大小限制、所述源消息中间件的文件数据大小限制以及所述目标消息中间件的文件数据大小限制,确定参考文件数据大小;所述拆分处理模块,用于按照所述参考文件数据大小,对所述待传输文件数据进行拆分处理。

本申请实施例的文件传输装置,通过获取源文件系统的已发布文件数据、源文件系统的源消息中间件的源地址、已发布文件数据的文件日志、订阅已发布文件数据的目标文件系统的目标消息中间件的目标地址;根据文件日志,确定已发布文件数据中的待传输文件数据;将待传输文件数据以及目标地址写入源消息中间件中,用于指示源消息中间件按照目标地址将待传输文件数据传输至目标消息中间件中,其中,结合消息中间件能够断点续传的性能,确保对大文件数据的传输成功率,进而提高文件传输效率。

图6为本申请实施例五所提供的文件传输装置的结构示意图。

如图6所示,该文件传输装置600,可以包括:获取模块610、确定模块620和写入模块630。

其中,获取模块610,用于获取目标文件系统的目标消息中间件中的多个文件数据;所述文件数据包括,文件标识;所述多个文件数据,为与所述目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;确定模块620,用于根据所述多个文件数据,确定所述目标文件系统的订阅文件数据;写入模块630,用于将所述订阅文件数据写入所述目标文件系统中。

进一步地,在本申请实施例的一种可能的实现方式中,所述确定模块620具体用于,针对所述多个文件数据中的每个文件标识,在所述多个文件数据中具有所述文件标识的目标文件数据的数量为单个的情况下,将所述目标文件数据,作为所述订阅文件数据;在所述多个文件数据中具有所述文件标识的目标文件数据的数量为多个的情况下,对多个所述目标文件数据进行组合处理,得到组合文件数据;将所述组合文件数据,作为所述订阅文件数据。

本申请实施例的文件传输装置,通过获取目标文件系统的目标消息中间件中的多个文件数据;文件数据包括,文件标识;多个文件数据,为与目标文件系统存在文件订阅关系的源文件系统的源消息中间件传输得到;根据多个文件数据,确定目标文件系统的订阅文件数据;将订阅文件数据写入目标文件系统中,其中,结合消息中间件确保大文件数据传输中断后能够断点续传,确保对大文件数据的传输成功率,进而提高文件传输效率。

为了实现上述实施例,本申请还提出一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请前述实施例提出的文件传输方法。

为了实现上述实施例,本申请还提出存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如本申请前述实施例提出的文件传输方法。

图7示出了适于用来实现本申请实施方式的示例性计算机设备的框图。图7显示的计算机设备12仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。

计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。

计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 可弯曲电子设备、可弯曲电子设备的控制方法、装置及电子设备
  • 电子设备显示屏驱动芯片驱动方法、装置及电子设备
  • 天线结构及电子设备的信号接收方法、装置、电子设备
  • 一种电子设备的输入方法、输入装置及电子设备
  • 电子设备的显示控制方法、装置、电子设备和存储介质
  • 文件传输方法、文件传输装置、电子设备及存储介质
  • 文件传输方法、文件传输装置及文件传输系统
技术分类

06120116489681