文件传输方法和系统的制作方法

文档序号:7982744阅读:149来源:国知局
文件传输方法和系统的制作方法
【专利摘要】本发明提供了一种文件传输方法和系统。所述方法包括:通过移动客户端上传分块数据;获取待上传的分块数据所对应的存储地址;根据所述存储地址判断所述分块数据所在文件是否上传完毕,若否,则返回所述通过移动客户端上传分块数据的步骤。所述系统包括:上传模块,用于上传分块数据;地址获取模块,用于获取待上传的分块数据所对应的存储地址;上传判断模块,用于根据所述分块数据的存储地址判断所述分块数据所在文件是否上传完毕,若否,则通知所述上传模块。采用本发明能提高弱网络环境下文件传输的成功率。
【专利说明】文件传输方法和系统
【技术领域】
[0001]本发明涉及网络技术,特别是涉及一种文件传输方法和系统。
【背景技术】
[0002]随着移动终端处理能力的提升,移动终端作为移动互联网的入口,被越来越多的人们所应用,进而依赖于移动互联网进行实现各种文件的传输。例如,在人们使用移动互联网的过程中,对上传文件的需求更为强烈,常常希望通过移动终端将某些文件上传至位于移动互联网中的某一服务器中进行存储,以便与其他人分享上传的文件。
[0003]但是,对于移动终端所接入的移动互联网而言,网络带宽窄小,且不稳定,在这一弱网络环境之下文件传输被迫中断和失败的情况时常发生,从而使得文件传输的成功率非常低,无法满足人们对移动互联网中的传输需求。

【发明内容】

[0004]基于此,有必要针对弱网络环境下文件传输的成功率低的问题,提供一种能提高传输成功率的文件传输方法。
[0005]此外,还有必要提供一种能提高传输成功率的文件传输系统。
[0006]一种文件传输方法,包括如下步骤:
[0007]通过移动客户端上传分块数据;
[0008]获取待上传的分块数据所对应的存储地址;
[0009]根据所述存储地址判断所述分块数据所在文件是否上传完毕,若否,则返回所述通过移动客户端上传分块数据的步骤。
[0010]一种文件传输系统,包括移动客户端,所述移动客户端包括:
[0011]上传模块,用于上传分块数据;
[0012]地址获取模块,用于获取待上传的分块数据所对应的存储地址;
[0013]上传判断模块,用于根据所述分块数据的存储地址判断所述分块数据所在文件是否上传完毕,若否,则通知所述上传模块。
[0014]上述文件传输方法和系统中,在移动客户端中上传分块数据,并按照存储地址将上传的分块数据存储于服务端中,直至分块数据所在文件上传完毕,在这一文件传输过程中,整个文件是通过分块数据的形式进行逐一传输的,因此,在弱网络环境下若发生文件传输中断时不需要重新进行文件的传输,只需要再次传输相应的分块数据即可,提高了弱网络环境下文件传输的成功率。
【专利附图】

【附图说明】
[0015]图1为一个实施例中文件传输方法的流程图;
[0016]图2为另一个实施例中文件传输方法的流程图;
[0017]图3为另一个实施例中文件传输方法的流程图;[0018]图4为另一个实施例中文件传输方法的流程图;
[0019]图5为一个实施例中文件传输方法的应用不意图;
[0020]图6为另一个实施例中文件传输方法的应用示意图;
[0021]图7为一个实施例中文件传输系统的结构不意图;
[0022]图8为另一个实施例中文件传输系统的结构示意图;
[0023]图9为另一个实施例中文件传输系统的结构示意图;
[0024]图10为另一个实施例中文件传输系统的结构示意图;
[0025]图11为另一个实施例中文件传输系统的结构示意图。
【具体实施方式】
[0026]如图1所示,在一个实施例中,一种文件传输方法,包括如下步骤:
[0027]步骤S110,通过移动客户端上传分块数据。
[0028]本实施例中,移动客户端是运行于移动终端中的客户端。将划分的若干个分块数据逐一上传到服务端,其中,分块数据是对需上传的文件按照一定的大小划分得到的,一系列的分块数据组成了完整的文件,该文件可以是各种多媒体文件或者其它形式的文件。
[0029]步骤S130,获取待上传的分块数据所对应的存储地址。
[0030]本实施例中,在上传了某一分块数据之后将会在服务端存储上传的分块数据,此时,获取服务端中下一分块数据所对应的存储地址,并返回给移动客户端,以使得移动客户端获取到待上传的分块数据所对应的存储地址。具体的,存储地址可以是网络地址,即IP地址,也可以是分块数据中开始位置所对应的偏移量。
[0031]步骤S150,根据存储地址判断分块数据所在文件是否上传完毕,若否,则返回步骤S110,若是,则结束。
[0032]本实施例中,若判断到分块数据已经上传完毕时,将不再进行分块数据的上传,若判断到分块数据还未上传完毕,则需继续逐一上传余下的分块数据,直至分块数据被完全上传。
[0033]在一个实施例中,存储地址为待上传分块数据所对应的偏移量,上述步骤S150的具体过程为:获取文件长度,判断待上传分块数据所对应的偏移量是否达到获取的文件长度,若否,则返回步骤S110,若是,则组装上传的分块数据,还原得到对应的文件。
[0034]本实施例中,待上传分块数据所对应的偏移量是服务端下发的,用于标识了待上传分块数据在服务端的存储位置,表征了待上传分块数据在服务端的开始位置以及与上一分块数据之间的链接。通过待上传分块数据所对应的偏移量可以获知在由若干个分块数据组成的文件中已经上传的数据量,其中,该数据量为偏移量和I之间的差值。
[0035]在判断到待上传分块数据所对应的偏移量已经达到了获取的文件长度时,将通知服务端文件上传完毕,此时,服务端将向移动客户端下发完成标识,以方便用户获知文件已经上传完毕。
[0036]如图2所示,在另一个实施例中,上述步骤SllO之前还包括如下步骤:
[0037]步骤S210,获取移动客户端发起的上传请求,根据上传请求建立文件的索引信息。
[0038]本实施例中,在用户需要经由移动客户端上传文件时,将通过移动客户端发起上传请求建立移动客户端和服务端之间的连接,该上传请求中记录了文件信息和/或用户信息,此时,将首先根据接收到的上传请求建立文件的索引信息。该索引信息中记录的内容可以根据上传请求中的信息确定,例如,索引信息中可以包括了文件信息,也可以包括了文件信息和用户信息。
[0039]以分块数据这一形式上传到服务端的文件将会以索引信息中记录的内容为索引进行存储的,例如,若索引信息中记录的内容为文件名,则上传的文件与文件名相关联,在后续的查找过程中根据文件名快速地查找到相应文件;若索引信息中记录的内容为文件名和用户标识,则上传的文件将同时关联文件名和用户标识,在后续的文件查找过程中可根据文件名或用户标识快速地查找到相应文件。这将使得索引信息和若干个分块数据能够分离存储,进而通过分离存储这一存储海量数据的最佳方式实现海量数据的有序管理。
[0040]步骤S230,根据索引信息生成文件的校验信息和存储地址,并返回至移动客户端。
[0041]本实施例中,从索引信息中可以获取到相应的文件信息和/或用户信息,进而根据获取到的文件信息和/或用户信息生成校验信息。由于对于存储于服务端的文件而言,每一文件所关联的索引信息均是唯一的,因此根据索引信息所得到的校验信息也将是唯一的,每一文件所对应的校验信息各不相同,因此,可通过校验信息标识文件以及文件中的分块数据,也就是说,则一文件中的若干个分块数据所对应的校验信息是一致的。
[0042]上述步骤SllO的具体过程为:封装分块数据和校验信息,并通过移动客户端按照存储地址上传封装的分块数据和校验信息。
[0043]本实施例中,在服务端根据上传请求向移动终端下发了校验信息和存储地址之后,移动终端将对分块数据和校验信息进行封装,并按照下发的存储地址进行上传。
[0044]如图3所示,在另一个实施例中,上述步骤SllO之后还包括如下步骤:
[0045]步骤S310,根据接收到的校验信息进行验证,判断接收到的分块数据是否属于与索引信息所对应的文件,若是,则进入步骤S330,若否,则进入步骤S350。
[0046]本实施例中,由于校验信息唯一地标识了文件中的分块数据,因此通过校验信息验证上传的若干个分块数据是否为同一文件和/或同一用户所对应的分块数据,若是,则说明接收到的分块数据无误,可进行存储,若否,则说明接收到的分块数据有问题,须重新上传。
[0047]步骤S330,存储分块数据。
[0048]步骤S350,清除分块数据。
[0049]如图4所示,在另一个实施例中,上述步骤SllO之前还包括:
[0050]步骤S410,通过移动客户端获取用户标识和文件信息,根据用户标识和文件信息生成上传请求,并发起生成的上传请求。
[0051]本实施例中,在用户需要上传某一文件时,从移动客户端中获取当前所登录的用户标识以及待上传文件的文件信息,该文件信息可以是文件名等信息,进而向服务端发起包含了用户标识和文件信息的上传请求。
[0052]步骤S430,从接收的上传请求中提取用户标识和文件信息。
[0053]步骤S450,在索引信息中查找文件信息是否存在,若是,则进入步骤S470,若否,则进入步骤SI 10。
[0054]本实施例中,在服务端中存储了海量的文件,这些文件可以是通过移动客户端上传得到的,也可以是通过其它终端中运行的客户端上传得到的,并且是以索引信息中记录的用户信息或文件信息为索引的。因此,在接收到上传请求时,将首先根据上传请求中的文件信息在服务端存储的索引信息所记录的文件信息中查找是否存在与上传请求中的文件信息相一致的文件信息,若存在,则不需要进行文件的上传,只需将这一索引信息所关联的文件与上传请求中的用户标识关联即可,若不存在,则需要以分块数据的方式完成整个文件的上传。
[0055]步骤S470,获取索引信息对应的文件。
[0056]步骤S490,将用户标识和索引信息对应的文件相关联。
[0057]本实施例中,上述步骤S490的具体过程为:根据上传请求中提取的用户标识和文件信息建立新的索引信息,进而将索引信息和获取到的文件相关联,使得索引信息中的用户标识与文件建立对应关系,此是,用户不需要上传文件,大大节省了系统资源和网络资源,无须受到弱网络环境下丢包和连接易断开的影响。
[0058]下面结合一个具体的实施例来详细阐述上述文件传输方法。该实施例中,如图5所示,用户在移动终端510中运行的移动客户端发起文件的上传请求,控制服务器530接收到上传请求之后将在云存储服务器550中根据上传请求建立文件的索引信息,此时,云存储服务器550将根据索引信息生成文件的校验信息和存储地址,并通过控制服务器530返回给移动客户端,移动客户端将分块数据和校验信息封装在一起,按照返回的存储地址上传封装的分块数据和校验信息。
[0059]云存储服务器550在接收到移动客户端上传的分块数据和校验信息时,将根据校验信息来验证分块数据的一致性,进而在验证通过时存储上传的分块数据。
[0060]在文件中的分块数据上传完毕之后,云存储服务器550将对若干个分块数据进行组装,以还原文件,进而实现了文件在云存储服务器550中的存储。
[0061]如图6所示,在一个文件分享场景中,用户B通过便携电脑610将电影Ml经由控制服务器530上传到云存储服务器550进行存储,并生成相应的索引信息与上传的电影Ml相关联。
[0062]用户A通过移动终端510中运行的移动客户端510发起电影Ml的上传请求,此时,控制服务器530将在云存储服务器550存储的索引信息中查找是否存在文件名为Ml,若是,则获取这一文件名为Ml的索引信息所关联的文件,即电影M1,并将其与用户A所对应的用户标识相关联。
[0063]如图7所不,在一个实施例中,一种文件传输系统,包括移动客户端10,该移动客户端10包括上传模块110、地址获取模块130以及上传判断模块150。
[0064]上传模块110,用于上传分块数据。
[0065]本实施例中,移动客户端10是运行于移动终端中的客户端。上传模块110将划分的若干个分块数据逐一上传到服务端,其中,分块数据是对需上传的文件按照一定的大小划分得到的,一系列的分块数据组成了完整的文件,该文件可以是各种多媒体文件或者其它形式的文件。
[0066]地址获取模块130,用于获取待上传的分块数据所对应的存储地址。
[0067]本实施例中,在上传了某一分块数据之后地址获取模块130将会在服务端存储上传的分块数据,此时,获取服务端中下一分块数据所对应的存储地址,并返回给移动客户端10,以使得地址获取模块130获取到待上传的分块数据所对应的存储地址。具体的,存储地址可以是网络地址,即IP地址,也可以是分块数据中开始位置所对应的偏移量。
[0068]上传判断模块150,用于根据分块数据的存储地址判断分块数据所在文件是否上传完毕,若否,则通知上传模块110。
[0069]本实施例中,若上传判断模块150判断到分块数据已经上传完毕时,将不再进行分块数据的上传,若判断到分块数据还未上传完毕,则需通知上传模块110继续逐一上传余下的分块数据,直至分块数据被完全上传。
[0070]如图8所示,在一个实施例中,存储地址为待上传分块数据所对应的偏移量,上述文件传输系统还包括文件还原模块210。
[0071]上述上传判断模块150还用于获取文件长度,判断待上传分块数据所对应的偏移量是否达到获取的文件长度,若否,则通知上传模块110,若是,则通知文件还原模块。
[0072]文件还原模块用于组装上传的分块数据,还原得到对应的文件。
[0073]本实施例中,待上传分块数据所对应的偏移量是服务端下发的,用于标识了待上传分块数据在服务端的存储位置,表征了待上传分块数据在服务端的开始位置以及与上一分块数据之间的链接。上传判断模块150通过待上传分块数据所对应的偏移量可以获知在由若干个分块数据组成的文件中已经上传的数据量,其中,该数据量为偏移量和I之间的差值。
[0074]在上传判断模块150判断到待上传分块数据所对应的偏移量已经达到了获取的文件长度时,将通知服务端文件上传完毕,此时,服务端将向移动客户端10下发完成标识,以方便用户获知文件已经上传完毕。
[0075]如图9所示,在另一个实施例中,上述文件传输系统还包括请求处理模块310以及信息返回模块330。
[0076]请求处理模块310,用于获取移动客户端10发起的上传请求,根据上传请求建立文件的索引信息。
[0077]本实施例中,在用户需要经由移动客户端10上传文件时,将通过移动客户端10发起上传请求建立移动客户端10和服务端之间的连接,该上传请求中记录了文件信息和/或用户信息,此时,请求处理模块310将首先根据接收到的上传请求建立文件的索引信息。该索引信息中记录的内容可以根据上传请求中的信息确定,例如,索引信息中可以包括了文件信息,也可以包括了文件信息和用户信息。
[0078]以分块数据这一形式上传到服务端的文件将会以索引信息中记录的内容为索引进行存储的,例如,若索引信息中记录的内容为文件名,则上传的文件与文件名相关联,在后续的查找过程中根据文件名快速地查找到相应文件;若索引信息中记录的内容为文件名和用户标识,则上传的文件将同时关联文件名和用户标识,在后续的文件查找过程中可根据文件名或用户标识快速地查找到相应文件。这将使得索引信息和若干个分块数据能够分离存储,进而通过分离存储这一存储海量数据的最佳方式实现海量数据的有序管理。
[0079]信息返回模块330,用于根据索引信息生成文件的校验信息和存储地址,并返回至移动客户端10。
[0080]本实施例中,信息返回模块330从索引信息中可以获取到相应的文件信息和/或用户信息,进而根据获取到的文件信息和/或用户信息生成校验信息。由于对于存储于服务端的文件而言,每一文件所关联的索引信息均是唯一的,因此根据索引信息所得到的校验信息也将是唯一的,每一文件所对应的校验信息各不相同,因此,可通过校验信息标识文件以及文件中的分块数据,也就是说,则一文件中的若干个分块数据所对应的校验信息是
一致的。
[0081]上述上传模块110还用于封装分块数据和校验信息,并按照存储地址上传封装的分块数据和校验信息。
[0082]本实施例中,在服务端根据上传请求向移动终端下发了校验信息和存储地址之后,上传模块110将对分块数据和校验信息进行封装,并按照下发的存储地址进行上传。
[0083]如图10所示,在另一个实施例中,上述文件传输系统还包括存储验证模块410。该存储验证模块410用于根据接收到的校验信息进行验证,判断接收到的分块数据是否属于与索引信息所对应的文件,若是,则存储分块数据,若否,则清除分块数据。
[0084]本实施例中,由于校验信息唯一地标识了文件中的分块数据,因此存储验证模块410通过校验信息验证上传的若干个分块数据是否为同一文件和/或同一用户所对应的分块数据,若是,则说明接收到的分块数据无误,可进行存储,若否,则说明接收到的分块数据有问题,须重新上传。
[0085]在另一个实施例中,上述移动客户端10还包括请求发起模块。该请求发起模块用于获取用户标识和文件信息,根据用户标识和文件信息生成上传请求,并发起生成的上传请求。
[0086]如图11所示,上述文件传输系统还包括提取模块510、查找模块530以及关联模块550。
[0087]提取模块510,用于从接收的上传请求中提取用户标识和文件信息。
[0088]本实施例中,在用户需要上传某一文件时,从移动客户端10中获取当前所登录的用户标识以及待上传文件的文件信息,该文件信息可以是文件名等信息,进而向服务端发起包含了用户标识和文件信息的上传请求。
[0089]查找模块530,用于在索引信息中查找文件信息是否存在,若是,则获取索引信息所对应的文件。
[0090]本实施例中,在服务端中存储了海量的文件,这些文件可以是通过移动客户端10上传得到的,也可以是通过其它终端中运行的客户端上传得到的,并且是以索引信息中记录的用户信息或文件信息为索引的。因此,查找模块430在接收到上传请求时,将首先根据上传请求中的文件信息在服务端存储的索引信息所记录的文件信息中查找是否存在与上传请求中的文件信息相一致的文件信息,若存在,则不需要进行文件的上传,只需将这一索引信息所关联的文件与上传请求中的用户标识关联即可,若不存在,则需要以分块数据的方式完成整个文件的上传。
[0091]关联模块550,用于将用户标识和索引信息对应的文件相关联。
[0092]本实施例中,关联模块550根据上传请求中提取的用户标识和文件信息建立新的索引信息,进而将索引信息和获取到的文件相关联,使得索引信息中的用户标识与文件建立对应关系,此是,用户不需要上传文件,大大节省了系统资源和网络资源,无须受到弱网络环境下丢包和连接易断开的影响。
[0093]上述文件传输系统中,请求处理模块、信息返回模块、存储验证模块、提取模块、查找模块和关联模块可设置于服务端,即后台服务器中。[0094]上述文件传输方法和系统中,在移动客户端中上传分块数据,并按照存储地址将上传的分块数据存储于服务端中,直至分块数据所在文件上传完毕,在这一文件传输过程中,整个文件是通过分块数据的形式进行逐一传输的,因此,在弱网络环境下若发生文件传输中断时不需要重新进行文件的传输,只需要再次传输相应的分块数据即可,提高了弱网络环境下文件传输的成功率。
[0095]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0096]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1.一种文件传输方法,包括如下步骤: 通过移动客户端上传分块数据; 获取待上传的分块数据所对应的存储地址; 根据所述存储地址判断所述分块数据所在文件是否上传完毕,若否,则返回所述通过移动客户端上传分块数据的步骤。
2.根据权利要求1所述的文件传输方法,其特征在于,所述通过移动客户端上传分块数据的步骤之前还包括: 获取所述移动客户端发起的上传请求,根据所述上传请求建立文件的索引信息; 根据所述索引信息生成所述文件的校验信息和存储地址,并返回至所述移动客户端。
3.根据权利要求2所述的文件传输方法,其特征在于,所述通过移动客户端上传分块数据的步骤为: 封装所述分块数据和校验信息,并通过所述移动客户端按照所述存储地址上传所述封装的分块数据和校验信息。
4.根据权利要求3所述的文件传输方法,其特征在于,所述通过移动客户端上传分块数据的步骤之后还包括: 根据所述接收到的校验信息进行验证,判断所述接收到的分块数据是否属于索引信息所对应的文件,若是,则存储所述分块数据,若否,则清除所述分块数据。`
5.根据权利要求1所述的文件传输方法,其特征在于,所述存储地址为待上传分块数据所对应的偏移量,所述根据所述存储地址判断所述分块数据所在文件是否上传完毕的具体过程为: 获取文件长度,判断所述待上传分块数据所对应的偏移量是否达到所述获取的文件长度,若否,则返回所述通过移动客户端上传分块数据的步骤,若是,则组装所述上传的分块数据,还原得到对应的文件。
6.根据权利要求2所述的文件传输方法,其特征在于,所述通过移动客户端上传分块数据的步骤之前还包括: 通过所述移动客户端获取用户标识和文件信息,根据所述用户标识和文件信息生成上传请求,并发起所述生成的上传请求; 从所述接收的上传请求中提取用户标识和文件信息; 在所述索引信息中查找所述文件信息是否存在,若是,则获取所述索引信息所对应的文件; 将所述用户标识和所述索引信息对应的文件相关联。
7.一种文件传输系统,其特征在于,包括移动客户端,所述移动客户端包括: 上传模块,用于上传分块数据; 地址获取模块,用于获取待上传的分块数据所对应的存储地址; 上传判断模块,用于根据所述分块数据的存储地址判断所述分块数据所在文件是否上传完毕,若否,则通知所述上传模块。
8.根据权利要求7所述的文件传输系统,其特征在于,所述系统还包括: 请求处理模块,用于获取所述移动客户端发起的上传请求,根据所述上传请求建立文件的索引信息; 信息返回模块,用于根据所述索引信息生成所述文件的校验信息和存储地址,并返回至所述移动客户端。
9.根据权利要求8所述的文件传输系统,其特征在于,所述上传模块还用于封装所述分块数据和校验信息,并按照所述存储地址上传所述封装的分块数据和校验信息。
10.根据权利要求9所述的文件传输系统,其特征在于,所述系统?还包括: 存储验证模块,用于根据所 述接收到的校验信息进行验证,判断所述接收到的分块数据是否属于与索引信息所对应的文件,若是,则存储所述分块数据,若否,则清除所述分块数据。
11.根据权利要求7所述的文件传输系统,其特征在于,所述存储地址为待上传分块数据所对应的偏移量,所述系统还包括文件还原模块; 所述上传判断模块还用于获取文件长度,判断所述待上传分块数据所对应的偏移量是否达到所述获取的文件长度,若否,则通知上传模块,若是,则通知文件还原模块; 所述文件还原模块还用于组装所述上传的分块数据,还原得到对应的文件。
12.根据权利要求8所述的文件传输系统,其特征在于,所述移动客户端还包括: 请求发起模块,用于获取用户标识和文件信息,根据所述用户标识和文件信息生成上传请求,并发起所述生成的上传请求; 所述系统还包括: 提取模块,用于从接收的上传请求中提取用户标识和文件信息; 查找模块,用于在所述索引信息中查找所述文件信息是否存在,若是,则获取所述索引信息所对应的文件; 关联模块,用于将所述用户标识和所述索引信息对应的文件相关联。
【文档编号】H04L29/08GK103685343SQ201210321800
【公开日】2014年3月26日 申请日期:2012年9月3日 优先权日:2012年9月3日
【发明者】龙海建, 张凯, 范世青 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1