分布式系统的文件上传及下载方法与系统与流程

文档序号:12494113阅读:754来源:国知局
分布式系统的文件上传及下载方法与系统与流程

本发明涉及分布式系统领域,尤其涉及一种分布式系统的文件上传及下载方法与系统。



背景技术:

现有文件传输协议有FTP和TFTP等,FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。FTP基于TCP,而TFTP基于UDP,相比之下,TFTP比FTP有着更快的传输速度。所以一般使用TFTP作为广播文件传输协议,目的是简单且速度快。

由于TFTP本身就是一套成熟文件传输协议,使用上非常灵活,但灵活的带来的问题是我们在将其扩展为广播文件传输协议时,会造成冗余的客户端和服务端通信链路,在广播文件时各个通信链路自成体系,传输过程不受控制,没有统一的应答机制。



技术实现要素:

本发明旨在提供一种分布式系统的文件上传方法,以解决现有分布式系统的文件上传及下载时没有统一的应答机制的问题,有效提高分布式系统的文件广播传输时的受控性及稳定性。

根据本发明的第一方面,一种分布式系统的文件上传方法,所述分布式系统包括服务器端和客户端,所述文件上传方法包括:所述服务端建立与客户端的连接会话;所述客户端发送写请求并等待应答;所述服务端如果收到写请求,初始化文件信息,判断文件是否存在;如果文件不存在或文件存在且选择覆盖,做出发送应答;如果文件存在且不选择覆盖,做出退出应答;所述客户端若收到所述发送应答,初始化文件信息,开始按block传送文件;所述服务端开始按block接收文件,并执行写文件操作,以及在成功接收文件和写文件操作时反馈正确的确认包;所述客户端如果收到正确的确认包,更改block号;并判断是否读到文件尾,如果不是继续传新的block,如果是则结束。

根据本发明的第二方面,一种分布式系统的文件下载方法,所述分布式系统包括服务器端和客户端,所述文件下载方法包括:所述服务端建立与客户端的连接会话;所述客户端发送读请求并等待应答;所述服务端如果收到读请求,判断文件是否存在,若存在,则发送正确应答,向客户端发送数据块,否则发送错误应答;所述客户端若收到所述正确应答,建本地文件,开始接受数据包;所述服务端收到客户端完成应答,确认文件传输完成。

根据本发明的第三方面,一种分布式系统的文件上传系统,所述分布式系统包括服务器端和客户端,所述服务器用于:建立与客户端的连接会话;如果收到写请求,初始化文件信息,判断文件是否存在;如果文件不存在或文件存在且选择覆盖,做出发送应答;如果文件存在且不选择覆盖,做出退出应答;按block接收文件,并执行写文件操作,以及在成功接收文件和写文件操作时反馈正确的确认包;所述客户端用于:发送写请求并等待应答;若收到所述发送应答,初始化文件信息,开始按block传送文件;如果收到正确的确认包,更改block号;并判断是否读到文件尾,如果不是继续传新的block,如果是则结束。

根据本发明的第四方面,一种分布式系统的文件下载系统,所述分布式系统包括服务器端和客户端,所述服务器用于:建立与客户端的连接会话;如果收到读请求,判断文件是否存在,若存在,则发送正确应答,向客户端发送数据块,否则发送错误应答;收到客户端完成应答,确认文件传输完成,所述客户端用于:发送读请求并等待应答;若收到所述正确应答,建本地文件,开始接受数据包。

本发明提出的一种分布式系统的文件上传方法,文件传输过程完全受控,并支持多客户端同时连接。具有完整的应答机制,有效提高分布式系统的文件广播传输时的受控性及稳定性。

参照附图来阅读对于示例性实施例的以下描述,本发明的其他特性特征和优点将变得清晰。

附图说明

并入到说明书中并且构成说明书的一部分的附图示出了本发明的实施例,并且与描述一起用于解释本发明的原理。在这些附图中,类似的附图标记用于表示类似的要素。下面描述中的附图是本发明的一些实施例,而不是全部实施例。对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他的附图。

图1示例性地示出了一种分布式系统中的服务器的文件传输处理流程图。

图2示例性地示出了一种分布式系统中的客户端的文件传输处理流程图。

图3示例性地示出了一种分布式系统中的服务端处理写请求(文件上传)的流程图。

图4示例性地示出了一种分布式系统中的服务端处理读请求(文件下载)的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

如图1所示,一种分布式系统中的服务器的文件传输处理流程图,其包括:

步骤101:所述服务端初始化;

步骤102:等待建立与客户端(client)的连接会话

步骤103:判断客户端的请求类型;

步骤104:若所述客户端发送写请求,则执行写请求,即图3所示的文件上传流程;

步骤105:若所述客户端发送读请求,则执行读请求,即图4所示的文件下载流程。

如图2所示,一种分布式系统中的客户端的文件传输处理流程图,其包括:

步骤201:客户端初始化;

步骤202:建立与服务器(server)的连接;

步骤203:判断连接是否成功;若不成功,则退出;

步骤204:若成功,客户端是否发送请求?

步骤205:若发送写请求,则执行写请求,参见对图3所示的实施例的描述内容;

步骤206:若所述客户端发送读请求,则执行读请求,参见对图4所示的实施例的描述内容。

如图3所示,一种分布式系统中的服务端处理写请求(文件上传)的流程图。其包括:

步骤301:服务端在收到写请求,初始化文件信息,定位目标文件;

步骤302:服务器判断文件是否存在;如果文件不存在或文件存在且选择覆盖,执行步骤303,即做出发送应答;如果文件存在且不选择覆盖,执行步骤304的错误处理操作,如:做出退出应答;

步骤305:服务器判断所述客户端是否成功收到该发送应答,若成功则执行步骤306,否则执行步骤304;

所述客户端若收到所述发送应答,初始化文件信息,开始按block传送文件;

步骤306:所述服务端开始按block接收文件;

步骤307:服务器判断是否成功接收文件,若成功则执行步骤308,否则执行步骤304;

步骤308:服务器执行写文件操作;

步骤309:服务器判断是否接收文件和写文件操作,若成功,则发送正确的确认包且则执行步骤310,否则执行步骤304;

相应地,所述客户端如果收到正确的确认包,更改block号;并判断是否读到文件尾,如果不是继续传新的block,如果是则结束。

步骤310:所述服务器收到数据包后进行错误校验操作;若发现错误,则返回步骤306重新接收文件;相应地,所述客户端如果收到所述服务器发送的用于表征校验错误的反馈信息时或者发送超时,重新传输文件。

优选地,在所述服务端开始按block接收文件的步骤之后还包括:

当所述客户端在传输过程中下线,删除未完成文件。

如图4所示,一种分布式系统中的服务端处理读请求(文件下载),其包括:

步骤401:所述服务端在收到读请求后,定位目标文件;

步骤402:判断文件是否存在(如判断文件是否可以打开),若存在,则执行步骤403;否则执行步骤404;

步骤403:发送正确应答,向客户端发送数据块;

步骤404:进行错误处理,如发送错误应答;

步骤405:服务端判断所述客户端是否收到该正确应答,若收到所述客户端所述正确应答,建本地文件,开始接受数据包;否则,执行步骤404;

步骤406:所述服务端收到客户端完成应答,确认文件传输完成,并对传送的收到数据包进行错误校验操作;若发现错误,则返回步骤403重新发送文件。

当然,也可以包括:所述客户端如果接收超时或者校验错,给服务器端发送错误包;所述服务器在收到所述错误包后,重新传输文件至所述客户端。

图3和图4所示实施例的该广播文件传输协议传输(包括文件上传及下载)过程完全受控,并支持多客户端同时连接。具有完整的应答机制、错误重传处理和冲突文件可选择覆盖等优点。可以理解是的该协议适应于多种分布式系统,如分布式交换系统,即服务器端和客户端均为交换机的情况。

基于图3所示实施例,本发明还提供一种分布式系统的文件上传系统,所述分布式系统包括服务器端和客户端,所述服务器用于:建立与客户端的连接会话;如果收到写请求,初始化文件信息,判断文件是否存在;如果文件不存在或文件存在且选择覆盖,做出发送应答;如果文件存在且不选择覆盖,做出退出应答;按block接收文件,并执行写文件操作,以及在成功接收文件和写文件操作时反馈正确的确认包;

所述客户端用于:发送写请求并等待应答;若收到所述发送应答,初始化文件信息,开始按block传送文件;如果收到正确的确认包,更改block号;并判断是否读到文件尾,如果不是继续传新的block,如果是则结束。

优选地,所述服务器还用于:当所述客户端在传输过程中下线,删除未完成文件。

进一步优选地,所述服务器还用于收到数据包后进行错误校验操作;

所述客户端还用于如果收到所述服务器发送的用于表征校验错误的反馈信息时或者发送超时,重新传输文件。

本实施例上传文件的实现基于客户端执行以下操作:1)发送写请求并等待应答;2)如果收到正确应答,初始化文件信息,开始传送文件;3)如果收到正确的确认包,更改block号;4)判断是否读到文件尾,如果不是继续传新的block,如果是则结束;5)如果收到校验错误或者发送超时,重传,最多三次;基于服务端执行以下操作:1)建立与客户端的连接会话;2)如果收到写请求,初始化文件信息,判断文件是否存在;3)如果文件不存在或文件存在且选择覆盖,做出发送应答;如果文件存在且不选择覆盖,做出退出应答;4)开始按block接收文件,当客户端在传输过程中下线,需要做清理工作:删除未完成文件;5)服务器收到数据包后校验错误,完成传输。“写”是客户端给服务器端上传文件;客户端显示上传,下载进度,选择是否覆盖型上传。广播文件传输协议分为客户端和服务端,客户端负责连接至服务端并发送读写任务,服务端负责处理来自客户端的读写请求。

基于图4所示实施例,本发明还提供一种分布式系统的文件下载系统,所述分布式系统包括服务器端和客户端,所述服务器用于:建立与客户端的连接会话;如果收到读请求,判断文件是否存在,若存在,则发送正确应答,向客户端发送数据块,否则发送错误应答;收到客户端完成应答,确认文件传输完成;所述客户端用于:发送读请求并等待应答;若收到所述正确应答,建本地文件,开始接受数据包。

优选地,所述客户端还用于如果接收超时或者校验错,给服务器端发送错误包;所述服务器还用于在收到所述错误包后,重新传输文件至所述客户端。

本实施例下载文件的实现基于客户端执行以下操作:1)发送读请求并等待应答;2)建本地文件,开始接受数据包;3)客户端如果接收超时或者校验错,给服务器端发送error包,否则传输完成;基于服务端执行以下操作:建立与客户端的连接会话;2)如果收到读请求,判断文件是否存在,否则发送错误应答;3)向客户端发送数据块,并接收来自客户端的重传回应;4)收到客户端完成应答,文件传输完成。基于可靠的通信接口,设计实现一种广播文件传输协议,保证文件传输的简单性,可靠性和高效性。需要设计传输包的类型,引入确认应答,错误处理,重传机制和简单的数据校验。各个模块需要实现读写功能:“读”是客户端从服务器端下载文件。

上面描述的内容可以单独地或者以各种方式组合起来实施,而这些变型方式都在本发明的保护范围之内。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制。尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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