文件传输方法和装置与流程

文档序号:11156763阅读:339来源:国知局
文件传输方法和装置与制造工艺

本发明涉及计算机技术领域,特别是涉及一种文件传输方法和装置。



背景技术:

传统的文件传输方法中,对于大文件(通常指大于10MB的文件)的传输通常是先在客户端进行拆分、编号,然后将分片数据逐个上传到服务器,服务器逐个接收分片数据,并将接收到的分片数据进行缓存,服务器在一个文件的所有分片数据接收完毕后,按照缓存的分片数据的顺序合并成一个完整文件。

然而,传统的这种文件传输方法,服务器需要对文件进行合并处理,由于带宽的限制和并发传输的情况,使得服务器的内存被长时间且大量的占用。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能减少服务器资源消耗的文件传输方法和装置。

一种文件传输方法,所述方法包括:

接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,所述分片数据包括分片信息和文件信息;

将所述分片数据存入到数据库中。

在其中一个实施例中,所述分片信息包括分片序号,所述文件信息包括用于唯一标识所述待发送文件的文件标识、文件分割得到的总分片数和文件名称。

在其中一个实施例中,所述方法还包括:对所述数据库中的分片序号和文件标识这两个字段分别建立索引。

在其中一个实施例中,所述方法还包括:接收客户端发送的文件下载请求,所述文件下载请求携带请求下载文件的文件标识;以所述文件标识和分片序号为索引,从数据库中查找出所述请求下载的文件对应的分片数据。

在其中一个实施例中,在所述从数据库中查找出所述请求下载的文件对应的分片数据之后,所述方法还包括:将所述分片数据按照所述分片数据中的分片序号进行排序;将排序后的所述分片数据组装成完整文件,将所述完整文件发送给所述客户端。

在其中一个实施例中,在所述从数据库中查找出所述请求下载的文件对应的分片数据之后,所述方法还包括:将所述请求下载的文件对应的分片数据发送给客户端,以使所述客户端根据所述分片数据的分片序号将所述分片数据组装成完整文件。

一种文件传输装置,所述装置包括:

分片数据接收模块,用于接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,所述分片数据包括分片信息和文件信息;

分片数据存储模块,用于将所述分片数据存入到数据库中。

在其中一个实施例中,所述分片信息包括分片序号,所述文件信息包括用于唯一标识所述待发送文件的文件标识、文件分割得到的总分片数和文件名称。

在其中一个实施例中,所述装置还包括:索引建立模块,用于对分片序号和文件标识这两个字段分别建立索引。

在其中一个实施例中,所述装置还包括:下载请求接收模块,用于接收客户端发送的文件下载请求,所述文件下载请求携带请求下载文件的文件标识;分片数据查找模块,用于以所述文件标识和分片序号为索引,从数据库中查找出所述请求下载的文件对应的分片数据。

在其中一个实施例中,所述装置还包括:分片数据排序模块,用于将所述分片数据按照所述分片中的分片序号进行排序;文件重组模块,用于将排序后的所述分片数据组装成完整文件;文件发送模块,用于将所述完整文件发送给所述客户端。

在其中一个实施例中,所述装置还包括:分片数据发送模块,用于将所述请求下载的文件对应的分片数据发送给客户端,以使所述客户端根据所述分片数据的分片序号将所述分片数据组装成完整文件。

上述文件传输方法和装置,通过接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,所述分片数据包括分片信息和文件信息,将所述分片数据存入到数据库中。由于服务器接收到分片数据后,直接存储至数据库,无需等待所有分片数据接收完毕后,再进行文件重组的处理,使得服务器不再需要分配大量内存来缓存分片数据,同时用户上传的数据得到了及时处理,减少了服务器内存的占用量和占用时间,从而减少了服务器资源的消耗。

附图说明

图1为一个实施例中文件传输方法的应用环境图;

图2为一个实施例中服务器的内部结构图;

图3为一个实施例中文件传输方法的流程图;

图4为一个实施例中下载文件的方法流程图;

图5为另一个实施例中下载文件的方法流程图;

图6为一个实施例中文件传输装置的结构框图;

图7为另一个实施例中文件传输装置的结构框图;

图8为又一个实施例中文件传输装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明实施例提供的文件传输方法可应用于如图1所示的环境中。参考图1所示,服务器102可接收客户端104发送的数据并存储至数据库,也可从数据库中查找出数据并发送给客户端104。具体的,服务器102通过网络与终端104进行通信,接收客户端104发送的将待发送文件按照预设大小分割后得到的多个分片数据,每个分片数据包括分片信息和文件信息,并将这些分片数据存储至数据库;服务器102接收客户端104发送的文件下载请求,从数据库中查找出分片数据,直接发送给客户端104或将分片数据组装成完整文件后,发送给终端104。这里的终端包括但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑、便携式穿戴设备等。

在一个实施例中,如图2所示,还提供了一种服务器,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络连接口,非易失性存储介质中存储有操作系统和一种文件传输装置,该文件传输装置用于执行一种文件传输方法。该处理器用于提高计算和控制能力,支撑整个服务器的运行。内存储器用于为非易失性存储介质中的文件传输装置的运行提供环境,该内存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得该处理器执行一种文件传输方法。网络接口用于与终端进行网络通信,接收或发送数据,例如接收终端发送的文件上传请求,以及向终端发送分片数据或文件等。

在一个实施例中,如图3所示,提供了一种文件传输方法,该方法以应用于如图1所示的服务器进行举例说明,包括:

步骤302,接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,分片数据包括分片信息和文件信息。

这里的文件,通常指大于10MB的文件。文件可以是文本、图片、音频、视频等,本发明实施例不局限于某种特定类型或格式的文件。

由于带宽的限制,将上述文件直接上传,需要耗费大量时间,且当传输发生异常时,需要将整个文件重新上传,不利于传输的进行。为了应对这种情况,本实施例中,将待发送文件按照预设大小分割成多个分片数据,每个分片数据包括分片信息和文件信息。这样,各分片数据是相对独立的,便可将所有分片数据并发上传,且当传输发生异常时,只需将传输失败的数据分片重新上传,使得传输时间大大减少。

步骤304,将分片数据存储至数据库中。

服务器接收分片数据后,可直接将数据存入到数据库中。由于分片数据包括分片信息和文件信息,因此根据分片数据本身即可查找到一个文件对应的所有分片数据,分片数据无需按照顺序进行传输,服务器接收到分片数据后,可直接存入数据库中,无需在缓存中等待一个文件的其他分片数据传输完毕即可存储。

本实施例中,由于服务器接收到分片数据后,直接存储至数据库,无需等待所有分片数据接收完毕后,再进行文件重组的处理,使得服务器不再需要分配大量内存来缓存分片数据,同时用户上传的数据得到了及时处理,减少了服务器内存的占用量和占用时间,从而减少了服务器资源的消耗。

在一个实施例中,分片信息包括分片序号,用于对分割后的分片数据进行顺序编号,便于后续的文件重组处理和数据丢失的准确定位;文件信息包括文件标识、总分片数和文件名称,文件标识用于唯一标识待发送文件,即通过文件标识,可找到与之对应的唯一的文件,总分片数用于记录文件分割后得到的分片总数,便于后续判断分片数据接收的完整性,文件名称和文件标识对应。

本实施例中,文件传输方法还包括:对数据库中的分片序号和文件标识这两个字段分别建立索引。

索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。使用索引可快速访问数据库表中的特定信息。本实施例中,通过对分片序号和文件标识这两个字段分别建立索引,可进一步优化分片数据的查找速度。

在一个实施例中,如图4所示,上述文件传输方法还包括对文件进行下载的流程,具体包括:

步骤402,接收客户端发送的文件下载请求,文件下载请求携带请求下载文件的文件标识。

本实施例中,客户端将文件上传到服务器后,还可通过客户端对文件进行下载。具体的,客户端可发起文件下载请求,服务器通过文件下载请求携带的请求下载文件的文件标识,可以从数据库中查找出请求下载文件的所有数据分片。可以理解的是,发起文件下载请求的客户端可以是上传文件的客户端,也可以是非上传文件的客户端。

步骤404,以文件标识和分片序号为索引,从数据库中查找出请求下载的文件对应的分片数据。

使用索引,可快速查找数据库中的特定信息,在本实施例中,特定信息是请求下载的文件对应的分片数据。而根据文件标识和分片序号的两级索引来查找请求下载的文件对应的分片数据,可进一步提高查找速度。

步骤406,将分片数据按照分片数据中的分片序号进行排序。

分片数据在存储到数据库的时候,由于网络的不稳定性等因素,不能保证是按照分片序号顺序插入到数据库中的,那么从数据库中查找出来的分片数据也很难确定是有序的,这就对后续文件的重组造成了障碍。为了后续操作的顺利进行,需要对分片数据按照分片序号进行排序。由于分片数据中包含分片序号,因此根据分片数据中的分片序号即可对分片数据进行排序。

步骤408,将排序后的分片数据组装成完整文件,将完整文件发送给客户端。

本实施例中,将排序后的分片数据依次合并,组装成原始的完整文件,再将该完整文件发送给客户端,实现文件的下载。

在另一个实施例中,如图5所示,上述文件传输方法还包括对文件进行下载的流程:

步骤502,接收客户端发送的文件下载请求,文件下载请求携带请求下载文件的文件标识。

本实施例中,同样的,客户端将文件上传到服务器后,还可通过客户端对文件进行下载。具体的,客户端可发起文件下载请求,服务器通过文件下载请求携带的请求下载文件的文件标识,可以从数据库中查找出请求下载文件的所有数据分片。可以理解的是,发起文件下载请求的客户端可以是上传文件的客户端,也可以是非上传文件的客户端。

步骤504,以文件标识和分片序号为索引,从数据库中查找出请求下载的文件对应的分片数据。

使用索引,可快速查找数据库中的特定信息,在本实施例中,特定信息是请求下载的文件对应的分片数据。而根据文件标识和分片序号的两级索引来查找请求下载的文件对应的分片数据,可进一步提高查找速度。

步骤506,将请求下载的文件对应的分片数据发送给客户端,以使客户端根据分片数据的分片序号将所述分片数据组装成完整文件。

服务器将从数据库中查找出的请求下载的文件对应的所有分片数据发送给客户端,由于分片数据包括总分片数和分片序号,客户端可根据总分片数判断分片数据是否全部接收,待分片数据全部接收,再根据分片序号对分片数据进行排序,将排序后的分片数据依次合并,组装成原始的完整文件。

本实施例中,在客户端实现文件重组,充分利用了客户端的资源,最大限度的减少了服务器的资源消耗。

如图6所示,在一个实施例中,还提供了一种文件传输装置,该装置包括:

分片数据接收模块602,用于接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,分片数据包括分片信息和文件信息。

分片数据存储模块604,用于将分片数据存入到数据库中。

在一个实施例中,分片信息包括分片序号,用于对分割后的分片数据进行顺序编号,便于后续的文件重组处理和数据丢失的准确定位;文件信息包括文件标识、总分片数和文件名称,文件标识用于唯一标识待发送文件,即通过文件标识,可找到与之对应的唯一的文件,总分片数用于记录文件分割后得到的分片总数,便于后续判断分片数据接收的完整性,文件名称和文件标识对应。

本实施例中,上述文件传输装置还包括索引建立模块706,用于对对数据库中的分片序号和文件标识这两个字段分别建立索引。

在另一个实施例中,如图7所示,提供了另一种文件传输装置,包括:

分片数据接收模块602,用于接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,分片数据包括分片信息和文件信息。

分片数据存储模块604,用于将分片数据存入到数据库中。

索引建立模块706,用于对对数据库中的分片序号和文件标识这两个字段分别建立索引。

下载请求接收模块708,用于接收客户端发送的文件下载请求,文件下载请求携带请求下载文件的文件标识。

分片数据查找模块710,用于以文件标识和分片序号为索引,从数据库中查找出请求下载的文件对应的分片数据。

分片数据排序模块712,用于将分片数据按照分片中的分片序号进行排序。

文件重组模块714,用于将排序后的分片数据组装成完整文件。

文件发送模块716,用于将完整文件发送给所述客户端。

在又一个实施例中,如图8所示,提供了又一种文件传输装置,包括:

分片数据接收模块602,用于接收客户端发送的将待发送文件按照预设大小分割后得到的多个分片数据,分片数据包括分片信息和文件信息。

分片数据存储模块604,用于将分片数据存入到数据库中。

索引建立模块706,用于对对数据库中的分片序号和文件标识这两个字段分别建立索引。

下载请求接收模块708,用于接收客户端发送的文件下载请求,文件下载请求携带请求下载文件的文件标识。

分片数据查找模块710,用于以文件标识和分片序号为索引,从数据库中查找出请求下载的文件对应的分片数据。

分片数据发送模块812,用于将请求下载的文件对应的分片数据发送给客户端,以使客户端根据所述分片数据的分片序号将所述分片数据组装成完整文件。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1