数据传输方法及装置与流程

文档序号:17356098发布日期:2019-04-09 21:41阅读:168来源:国知局
数据传输方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种数据传输方法及装置。



背景技术:

kubernetes作为一种服务编排工具,支持docker打包发布技术,在大规模集群下,kubernetes可以做到编排docker机组成的集群,提供基于kubernetes的部署docker容器服务。

基于kubernetes的部署docker容器服务,本质上就是在集群中的不同机器上,启动一个或多个docker容器。docker容器是基于docker镜像(将代码、操作系统、环境变量、文件等运行环境全部打包成一个整体的技术)运行起来的,并且在运行后,每个docker容器都有一个互联网协议地址(internetprotocoladdress,ip地址)。然而,在原始kubernetes集群中,docker容器的ip地址为虚拟互联网协议,在进行数据传输时,docker容器无法被kubernetes集群外的用户访问到,用户也无法直接连接至docker容器。

为使用户能够直接连接docker容器,目前可采用ftp中央服务器转存的方式或者采用命令行界面(command-lineinterface,cli)工具。然而,采用ftp中央服务器转存的方式,需要中央ftp节点存储用户上传的数据,并需要隔离用户上传的数据、设置目录以及专门的进程监听所有目录等一系列操作,存在实现成本高、效率低的问题,并且中央ftp节点是否转发成功不确定,对数据传输的安全性造成威胁。采用cli工具kubectl将文件传输到docker容器内的方式,操作繁琐并且需要操作kubectl的知识积累,手动操作失误同样造成数据传输的安全威胁以及效率低。



技术实现要素:

为了解决现有技术中存在的上述问题,本发明提供一种数据传输方案。

根据本发明实施例的其中一方面,提供一种数据传输方法,所述方法包括:

接收身份标识步骤,接收客户端发送的客户端的身份标识;

确定docker容器步骤,基于所述客户端的身份标识、以及所述客户端的身份标识与docker容器之间具有的预设对应关系,确定与所述客户端的身份标识对应的docker容器;

连接步骤,与所述docker容器内的容器代理建立通信连接,所述容器代理用于根据所述客户端发送的数据处理请求在所述docker容器内进行数据处理;

接收数据处理请求步骤,接收所述客户端发送的所述数据处理请求;

转发数据处理请求步骤,将所述数据处理请求转发至所述docker容器内的容器代理。

在一例中,所述方法还包括:

接收反馈步骤,接收所述容器代理反馈的数据处理响应,所述数据处理响应是所述容器代理进行所述数据处理请求后得到的;

转发反馈步骤,转发所述数据处理响应至所述客户端。

在一例中,所述确定docker容器步骤之后还包括获取地址步骤:确定与所述身份标识对应的所述docker容器的互联网协议地址;

所述连接步骤基于确定的互联网协议地址与所述docker容器内的所述容器代理建立通信连接;

所述转发数据处理请求步骤基于所述互联网协议地址,将所述数据处理请求发送至所述docker容器的容器代理。

在一例中,所述确定docker容器步骤之前还包括身份标识校验步骤:

基于所述预设对应关系对所述客户端的身份标识进行校验,并获得校验结果,

响应于所述校验结果为成功,基于所述预设对应关系确定与所述客户端的身份标识对应的docker容器;

响应于所述校验结果为失败,将所述校验结果返回所述客户端并提示所述客户端重新发送客户端的身份标识。

在一例中,所述转发数据处理请求步骤,包括:

通过grpc协议,将所述数据处理请求发送至所述docker容器的容器代理。

在一例中,其中,所述接收反馈步骤包括:通过grpc协议,接收所述数据处理响应;

所述转发反馈步骤包括:通过grpc协议,转发所述数据处理响应。

在一例中,所述数据处理请求为ftp协议的查看文件列表指令;

所述转发数据处理请求步骤包括:通过grpc协议,将所述ftp协议的查看文件列表指令转换为grpc协议的查看文件列表指令,并将grpc协议的查看文件列表指令发送至所述docker容器的容器代理;

所述接收反馈步骤包括:接收所述容器代理反馈的grpc协议的文件列表数据,所述文件列表数据由所述容器代理根据所述grpc协议的查看文件列表指令查询得到;

所述转发反馈步骤包括:将所述grpc协议的文件列表数据转换为ftp协议的文件列表数据,并发送给所述客户端。

在一例中,所述数据处理请求为ftp协议的文件存储指令;

所述转发数据处理请求步骤包括:提取ftp协议的所述文件存储指令中的文件名、文件数据以及存储指令;通过grpc协议,将所述文件名、文件数据以及存储指令转发至所述docker容器的容器代理。

在一例中,所述数据处理请求为ftp协议的文件删除指令;

所述转发数据处理请求步骤包括:提取ftp协议的文件删除指令中的文件名以及删除指令;通过grpc协议,将所述文件名以及删除指令转发至所述docker容器的容器代理。

在一例中,所述客户端的身份标识和与其对应的所述docker容器的身份标识相同。

根据本发明实施例的另一方面,提供一种数据传输方法,所述方法包括:

通信连接步骤,在docker容器内与转发代理建立通信连接;

转发接收步骤,接收所述转发代理发送的数据处理请求;

处理步骤,根据所述数据处理请求,在docker容器内进行数据处理。

在一例中,所述方法还包括:

反馈步骤,将所述处理步骤得到的数据处理响应反馈至所述转发代理。

在一例中,所述通信连接步骤,包括:

基于所述docker容器的互联网协议地址与所述转发代理建立通信连接。

在一例中,所述转发接收步骤包括:通过grpc协议,接收所述转发代理发送的所述数据处理请求。

在一例中,所述反馈步骤包括:

通过grpc协议,将所述数据处理响应反馈给所述转发代理。

在一例中,所述数据处理请求为grpc协议的查看文件列表指令;

所述处理步骤包括:获取docker容器内的文件列表数据,所述文件列表数据是基于所述grpc协议的查看文件列表指令查询得到的;

所述反馈步骤将所述文件列表数据通过grpc协议反馈至所述转发代理。

在一例中,所述数据处理请求为grpc协议的文件存储指令,所述文件存储指令包括第一文件名、第一文件数据以及存储指令;

所述处理步骤包括:基于所述存储指令,将所述第一文件名对应的第一文件数据写入所述docker容器中。

在一例中,所述数据处理请求为grpc协议的文件删除指令,所述删除指令包括第二文件名以及删除指令;

所述处理步骤包括:

基于所述第二文件名,在所述docker容器中查找与所述第二文件名匹配的第二文件数据;

基于所述删除指令,对所述docker容器中的第二文件数据进行删除操作。

根据本发明实施例的再一方面,提供一种数据传输方法,所述方法包括:

连接转发代理步骤,与转发代理建立通信连接;

发送身份标识步骤,发送身份标识至所述转发代理,所述身份标识与docker容器之间具有预设对应关系,所述转发代理用于通过所述身份标识与具有所述预设对应关系的docker容器内的容器代理建立通信连接;

发送数据处理请求步骤,发送数据处理请求至所述转发代理,所述转发代理用于将所述数据处理请求转发到docker容器内的容器代理,所述容器代理用于根据所述数据处理请求在所述容器内进行数据处理。

在一例中,所述方法还包括:

接收转发反馈步骤,接收数据处理响应,所述数据处理响应是由所述容器代理进行数据处理后得到的并由所述转发代理转发的。

在一例中,所述发送身份标识步骤之后,还包括重新发送步骤:

所述转发代理对所述身份标识校验结果为失败时,接收所述转发代理返回的校验结果;

基于所述校验结果,对所述身份标识进行修改,得到修改后的身份标识;

将所述修改后的身份标识重新发送至所述转发代理。

在一例中,所述连接转发代理步骤包括:基于ftp协议,与所述转发代理建立通信连接;

所述发送数据处理请求步骤包括:发送ftp协议的查看文件列表指令至所述转发代理;

所述接收转发反馈步骤,包括:接收所述转发代理接收到的所述容器代理返回至所述转发代理的文件列表数据。

在一例中,所述连接转发代理步骤包括:基于ftp协议,与所述转发代理建立通信连接;

所述发送数据处理请求步骤包括:发送ftp协议的文件存储指令至所述转发代理,所述文件存储指令包括可被所述转发代理提取的文件名、文件数据、存储指令。

在一例中,所述连接转发代理步骤包括:基于ftp协议,与所述转发代理建立通信连接;

所述发送数据处理请求步骤包括:发送ftp协议的删除指令至所述转发代理。

根据本发明实施例的另一方面,提供一种数据传输装置,其中,包括:

接收单元,用于接收客户端发送的客户端的身份标识、所述客户端发送的所述数据处理请求;

docker容器确定单元,用于基于所述客户端的身份标识、以及所述客户端的身份标识与docker容器之间具有的预设对应关系,确定与所述客户端的身份标识对应的docker容器;

通信单元,用于与所述docker容器内的容器代理建立通信连接,其中,所述容器代理用于根据所述客户端发送的数据处理请求在所述docker容器内进行数据处理;

转发单元,用于将所述数据处理请求转发至所述docker容器内的容器代理。

在一例中,所述装置还包括:

反馈接收单元,用于接收所述容器代理反馈的数据处理响应,所述数据处理响应是所述容器代理进行所述数据处理请求后得到的;

所述转发单元,还用于转发所述数据处理响应至所述客户端。

在一例中,所述docker容器确定单元,还用于确定与所述身份标识对应的所述docker容器的互联网协议地址;基于确定的互联网协议地址与所述docker容器内的所述容器代理建立通信连接;

所述转发单元基于所述互联网协议地址,将所述数据处理请求发送至所述docker容器的容器代理。

在一例中,所述docker容器确定单元,还用于基于所述预设对应关系对所述客户端的身份标识进行校验,并获得校验结果,

响应于所述校验结果为成功,基于所述预设对应关系确定与所述客户端的身份标识对应的docker容器;

响应于所述校验结果为失败,将所述校验结果返回所述客户端并提示所述客户端重新发送客户端的身份标识。

在一例中,所述转发单元用于通过grpc协议,将所述数据处理请求发送至所述docker容器的容器代理。

在一例中,所述反馈接收单元,用于通过grpc协议,接收所述数据处理响应;

所述转发单元,用于通过grpc协议,转发所述数据处理响应。

在一例中,所述数据处理请求为ftp协议的查看文件列表指令;

所述转发单元,用于通过grpc协议,将所述ftp协议的查看文件列表指令转换为grpc协议的查看文件列表指令,并将grpc协议的查看文件列表指令发送至所述docker容器的容器代理;

所述反馈接收单元,用于接收所述容器代理反馈的grpc协议的文件列表数据,所述文件列表数据由所述容器代理根据所述grpc协议的查看文件列表指令查询得到;

所述转发单元,用于将所述grpc协议的文件列表数据转换为ftp协议的文件列表数据,并发送给所述客户端。

在一例中,所述数据处理请求为ftp协议的文件存储指令;

所述转发单元,用于提取ftp协议的所述文件存储指令中的文件名、文件数据以及存储指令;通过grpc协议,将所述文件名、文件数据以及存储指令转发至所述docker容器的容器代理。

在一例中,所述数据处理请求为ftp协议的文件删除指令;

所述转发单元,用于提取ftp协议的文件删除指令中的文件名以及删除指令;通过grpc协议,将所述文件名以及删除指令转发至所述docker容器的容器代理。

在一例中,所述客户端的身份标识和与其对应的所述docker容器的身份标识相同。

根据本发明实施例的另一方面,提供一种数据传输装置,其中,包括:

通信连接单元,用于在docker容器内与转发代理建立通信连接;

数据处理请求接收单元,用于接收所述转发代理发送的数据处理请求;

请求处理单元,用于根据所述数据处理请求,在docker容器内进行数据处理。

在一例中,所述装置还包括:

数据处理响应反馈单元,用于将所述请求处理单元得到的数据处理响应反馈至所述转发代理。

在一例中,所述通信连接单元,用于基于所述docker容器的互联网协议地址与所述转发代理建立通信连接。

在一例中,所述数据处理请求接收单元,用于通过grpc协议,接收所述转发代理发送的所述数据处理请求。

在一例中,所述数据处理响应反馈单元,用于通过grpc协议,将所述数据处理响应反馈给所述转发代理。

在一例中,所述数据处理请求为grpc协议的查看文件列表指令;

所述请求处理单元,用于获取docker容器内的文件列表数据,其中,所述文件列表数据是基于所述grpc协议的查看文件列表指令查询得到的;

数据处理响应反馈单元,用于将所述文件列表数据通过grpc协议反馈至所述转发代理。

在一例中,所述数据处理请求为grpc协议的文件存储指令,所述文件存储指令包括第一文件名、第一文件数据以及存储指令;

所述请求处理单元,用于基于所述存储指令,将所述第一文件名对应的第一文件数据写入所述docker容器中。

在一例中,所述数据处理请求为grpc协议的文件删除指令,所述删除指令包括第二文件名以及删除指令;

所述请求处理单元,用于基于所述第二文件名,在所述docker容器中查找与所述第二文件名匹配的第二文件数据;基于所述删除指令,对所述docker容器中的第二文件数据进行删除操作。

根据本发明实施例的另一方面,提供一种数据传输装置,其中,包括:转发代理连接单元,用于与转发代理建立通信连接;

身份标识发送单元,用于发送身份标识至所述转发代理,所述身份标识与docker容器之间具有预设对应关系,所述转发代理用于通过所述身份标识与具有所述预设对应关系的docker容器内的容器代理建立通信连接;

数据处理请求发送单元,用于发送数据处理请求至所述转发代理,其中,所述转发代理用于将所述数据处理请求转发到docker容器内的容器代理,所述容器代理用于根据所述数据处理请求在所述容器内进行数据处理。

在一例中,所述装置还包括:

数据处理响应接收单元,用于接收数据处理响应,所述数据处理响应是由所述容器代理进行数据处理后得到的并由所述转发代理转发的。

在一例中,所述身份标识发送单元,还用于所述转发代理对所述身份标识校验结果为失败时,接收所述转发代理返回的校验结果;基于所述校验结果,对所述身份标识进行修改,得到修改后的身份标识;将所述修改后的身份标识重新发送至所述转发代理。

在一例中,其中,所述转发代理连接单元,用于基于ftp协议,与所述转发代理建立通信连接;

所述数据处理请求发送单元,用于发送ftp协议的查看文件列表指令至所述转发代理;

所述数据处理响应接收单元,用于接收所述转发代理接收到的所述容器代理返回至所述转发代理的文件列表数据。

在一例中,所述转发代理连接单元,用于基于ftp协议,与所述转发代理建立通信连接;

所述数据处理请求发送单元,用于发送ftp协议的文件存储指令至所述转发代理,所述文件存储指令包括可被所述转发代理提取的文件名、文件数据、存储指令。

在一例中,所述转发代理连接单元,用于基于ftp协议,与所述转发代理建立通信连接;

所述数据处理请求发送单元,用于发送ftp协议的删除指令至所述转发代理。

根据本发明实施例的另一方面,提供一种电子设备,其中,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述任一实施例所述的方法。

根据本发明实施例的另一方面,提供一种计算机可读存储介质,存储有计算机程序,其中,所述计算机程序被处理器执行时,实现上述任一实施例所述的方法。

基于数据传输方法及装置、电子设备、计算机可读存储介质,本发明通过接收客户端的数据处理请求,基于客户端身份标识与docker容器之间的预设对应关系,确定与所述客户端的身份标识对应的docker容器,并与所述docker容器内的容器代理建立通信连接,将所述数据处理请求发送至所述docker容器的容器代理,所述容器代理根据所述数据处理请求对数据进行处理,并将处理响应返回至客户端。由于转发代理在数据传输过程中未对数据处理请求进行存储操作,避免了在转发代理上隔离用户上传的数据、设置目录以及专门的进程监听所有目录等一系列操作;操作人员只需在客户端发送数据处理请求,在docker容器中设置的容器代理基于数据处理请求对数据进行相应的操作,避免了使用辅助操作工具,操作繁琐并且需要具备辅助操作工具知识的弊端,提高了数据传输的效率以及安全性。

附图说明

通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:

图1示出了本发明的数据传输方法的一个实施例的流程示意图;

图2示出了本发明的数据传输方法的另一实施例的流程示意图;

图3示出了本发明的数据传输方法的另一实施例的流程示意图;

图4示出了本发明的数据传输方法的另一实施例的流程示意图;

图5示出了本发明的数据传输方法的另一实施例的流程示意图;

图6示出了本发明的数据传输方法的另一实施例的流程示意图;

图7示出了本发明的数据传输方法的另一实施例的流程示意图;

图8示出了本发明的数据传输装置的一个实施例的结构示意图;

图9示出了本发明的数据传输装置的另一实施例的结构示意图;

图10示出了本发明的数据传输装置的另一实施例的结构示意图;

图11示出了本发明的数据传输装置的另一实施例的结构示意图;

图12示出了本发明的数据传输装置的另一实施例的结构示意图;

图13示出了本发明的数据传输装置的另一实施例的结构示意图;

图14示出了本发明的电子设备的一个实施例的结构示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。

需要注意,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同模块、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的模块、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。

本发明实施例可以应用于终端设备、计算机系统及服务器等电子设备,其可与众多其它通用或者专用的计算系统环境或者配置一起操作。适于与终端设备、计算机系统以及服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子,包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

终端设备、计算机系统以及服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑以及数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

图1为本发明数据传输方法一个实施例的流程图。如图1所示,该实施例方法包括:接收身份标识步骤110、确定docker容器步骤120、连接步骤130接收数据处理请求步骤140以及转发数据处理请求步骤150。下面对图1中的各步骤进行详细说明。

接收身份标识步骤110,接收客户端发送的客户端的身份标识。

在一个实施例中,本发明中的客户端可以为计算机或可移动通讯设备,其中的可移动通讯设备可以是平板电脑、手机等可实现主动数据发送和接收的设备。本实施例对客户端的类型不做具体限定。

确定docker容器步骤120,基于客户端的身份标识、以及客户端的身份标识与docker容器之间具有的预设对应关系,确定与客户端的身份标识对应的docker容器。

本实施例中,docker容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。本实施例中的docker容器可以是kubernetes集群中的容器,在kubernetes集群的docker容器创建过程中,为每一个docker容器配置唯一的docker容器身份标识,这样,每一个docker容器均可以通过该docker容器身份标识被识别,通过docker容器的ip地址被锁定位置。

kubernetes是一个开源的、用于管理云平台中多个主机上的容器化的应用,kubernetes的目标是让部署容器化的应用简单并且高效,kubernetes提供了应用部署,规划,更新,维护的一种机制。应用部署通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在创建(build)或发布(release)的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。

本实施例中,每一客户端均已与其对应的docker容器的身份标识作为本身的身份标识,采用上述配置可使客户端对应于单独的docker容器,客户端对docker容器的操作只能是针对该docker容器,保障了kubernetes集群中数据传输的针对性以及安全性。客户端的身份标识也可以配置成与docker容器的ip地址一一对应,作为识别客户端与docker容器是否匹配的判断标准。除此之外,还可以通过其他的本领域技术人员可以实现的方式来匹配客户端与docker容器,本实施例对此不做具体限定。

在一些具体的实施方式中,docker容器的身份标识与客户端的身份标识均可以是由唯一长串字符组成的,该唯一的长串字符是指客户端与docker容器所在的kubernetes集群中是唯一的。docker容器的身份标识与客户端的身份标识只有使用者可知,提高使用者数据传输的安全性以及docker容器中的数据安全性。其中,客户端的身份标识可以是以上述唯一的长串字符作为用户名的形式配置在客户端,也可以是以用户名与密码组合的形式配置在客户端,进一步提高用户的数据安全性。本实施例中docker容器的身份标识可以修改,但只可以修改为与其他docker容器的身份标识不同,上述的“唯一”只是针对其他docker容器而言,docker容器的身份标识是可以修改的,但修改后要适应性修改与之对应的客户端的身份标识。

连接步骤130,与docker容器内的容器代理建立通信连接,容器代理用于根据客户端发送的数据处理请求在docker容器内进行数据处理。

在本发明实施例中,可以通过客户端的身份标识作为查找kubernetes集群中相应docker容器的依据。由于在创建docker容器过程中配置的docker容器的身份标识是唯一确定的,且客户端是以docker容器的身份标识作为客户端身份标识,所以,基于客户端的身份标识确定与之对应的docker容器的结果是唯一的。

在一些具体实施方式中,基于客户端的身份标识,确定与客户端的身份标识对应的docker容器,其结果可以分为两种:成功、失败。客户端的身份标识与docker容器的身份标识匹配成功,则可以与匹配成功的docker容器建立连接,并可以进行数据传输;客户端的身份标识与docker容器的身份标识匹配失败,则表明客户端的身份标识对应的客户端在kubernetes集群中没有对应的docker容器,或者具有该客户端身份标识的客户端不属于该kubernetes集群中的节点,不可以实现该客户端与kubernetes集群中的docker容器的连接,不可进行数据传输。

接收数据处理请求步骤140,接收客户端发送的数据处理请求。

转发数据处理请求步骤150,将数据处理请求发送至docker容器的容器代理。

在一些实施例中,与客户端按照第一通信协议进行数据传输,与docker容器按照第二通信协议进行数据传输,其中,第一通信协议与第二通信协议可以是相同类型的通信协议,也可以是不同类型的通信协议,本实施例对此不做限定。第一通信协议优选ftp(filetransferprotocol,ftp,文件传输协议)作为通信协议,因为ftp客户端很多,mac、windows等平台都有很多的ftp客户端产品,适用范围较广。第一通信协议还可以是http协议、grc协议、rpc协议或其他类型的协议。本实施例针对适用范围优选为ftp协议,在实际操作过程中可以根据实际情况对选择的协议类型进行筛选。

在docker容器中设置容器代理用于处理上传至docker容器中的数据处理请求,容器代理接收数据处理请求后可以自动对数据处理请求进行处理,避免了用户采用cli工具kubectl手动操作将数据传输到docker容器内并对数据进行相应处理的操作繁琐、容易出错的弊端。

在确定与客户端对应的docker容器后,与docker容器建立通信连接,该通信连接可以是长久有效的,在保持通信连接的情况下,客户端可以发送数据处理请求直接发送至docker容器中,从而实现客户端与docker容器之间的通信连接,在客户端与docker容器之间直接进行数据传输。

在本发明实施例中,基于确定了与客户端身份标识对应的docker容器之后,将客户端发送的数据处理请求发送至docker容器的容器代理,容器代理基于数据处理请求对docker容器中的数据进行处理。

图2示出了本发明数据传输方法的另一些实施例的流程示意图,如图2所示,还包括:接收反馈步骤160,接收容器代理反馈的数据处理响应,数据处理响应为容器代理进行数据处理请求后得到的;以及转发反馈步骤170,转发数据处理响应至客户端。

在本发明实施例中,docker容器的容器代理接收到数据处理请求之后,基于数据处理请求在docker容器中进行数据处理。在docker容器的容器代理完成上述操作之后,可以得到数据处理响应,该数据处理响应可以是操作对应的状态结果,也可以是基于操作得到的数据结果。其中操作对应的状态结果可以包括成功和失败,如删除成功、删除失败、写入成功、写入失败等;操作对应的数据结果可以是查询docker容器中的数据返回的数据列表文件及其他数据文件。在接收到上述数据处理响应之后,转发给客户端,以使用户能够了解数据处理请求所对应的操作是否成功或者查看数据处理请求对应的数据。

基于本实施例提供的数据传输方法,客户端发送数据处理请求以及docker容器的容器代理返回数据处理响应,在kubernetes集群的客户端与docker容器之间的中间节点上按照数据处理请求中的操作指令对数据文件的传输路径进行指引,数据文件未经过中间存储。可以避免现有技术中将文件上传到设置在kubernetes集群节点上的中央ftp节点,用户之间的代码,相互隔离并就会有很多的目录,建立专门的进程监听所有目录,有任何文件变化产生,中央节点再将文件二次转发到用户的具体容器上所在服务器上,实现成本非常高,而且效率不高,可能会由于中央节点转发失败,导致用户认为上传了成功了,但实际文件并没有上传到容器的问题。除此之外,用户只需将数据处理请求在客户端上传即可,无需其他操作,避免了采用cli工具kubectl手动操作将数据传输到docker容器内并对数据进行相应处理的操作繁琐、容易出错的弊端。

在一实施例中,确定docker容器步骤120之后还包括获取地址步骤:确定docker容器的ip地址。docker容器的ip地址是表示的是与docker容器进行数据传输的终点位置,也是docker容器建成之后唯一不变的参数,通过确定docker容器的ip地址,可以确定数据处理请求传输的路径和目的位置。基于ip地址,将数据处理请求发送至docker容器的容器代理。

本实施例中所涉及的数据处理请求可以是查看文件列表(list)指令、文件存储(store)指令、文件删除(delete)指令以及文件修改指令等。

图3示出了本发明数据传输方法的另一些实施例的流程示意图,如图3所示,本实施例的数据传输方法与前述实施例的数据传输方法不同之处在于,在确定docker容器步骤120之前,还包括身份标识校验步骤111:对客户端的身份标识进行校验,并获得校验结果。

本实施例中确定docker容器的ip地址是基于与docker容器的身份标识对应的客户端标识与kubernetes集群中的预设函数获得的,客户端发送客户端的身份标识,在接收到该身份标识后,将该身份标识基于kubernetes集群的预设函数中查询是否存在对应的docker容器,确保数据传输的针对性和安全性。本实施例中所涉及的预设函数可以是应用程序编程接口(applicationprogramminginterface,api),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。本实施例中所涉及的上述具体的预设函数可以是本领域技术人员所可以实现的任何形式,本实施例对此不做限定。

本实施例中对客户端的身份标识进行校验的结果可以是校验成功和校验失败两种情况。其中,若在kubernetes集群的预设函数所有docker容器中存在与客户端的身份标识相同的docker容器,则客户端的身份标识校验成功,响应于校验结果为成功,基于预设对应关系确定与客户端的身份标识对应的docker容器,可以基于该客户端的身份标识查询得出与该客户端对应的docker容器的ip地址,进而基于ip地址与相应的docker容器建立通信连接并进行数据传输。

响应于校验结果为失败,将校验结果返回客户端并提示客户端重新发送客户端的身份标识,重新发送的客户端的身份标识可为修改后的身份标识。若在kubernetes集群的预设函数所有docker容器中不存在与客户端的身份标识相同的docker容器,则校验未通过,表明该客户端的身份标识与docker容器的身份标识不匹配,返回校验失败结果至客户端,客户端可根据该校验失败结果修改客户端的身份标识的用户名和/或密码,修改完成后再次上传数据处理请求,直至校验成功后才能执行获取docker容器的ip地址,与docker容器建立通信连接,发送数据处理请求至docker容器的容器代理等操作。

在一实施例中,转发数据处理请求步骤150,包括:通过grpc协议,将数据处理请求发送至docker容器的容器代理。本实施例中grpc(googleremoteprocedurecall)协议是谷歌发布的一个基于超文本传输协议2(hypertexttransferprotocol,http2)承载的高性能、通用的rpc开源软件框架。通信双方都基于该框架进行二次开发,从而使得通信双方聚焦在业务,无需关注由grpc框架实现的底层通信。grpc协议在客户端支持多语言,客户端支持ios,android,而基于http2的多路复用也的确让设备真正的省流量,省电,省空间。

以下对不同数据处理请求的实施例分别阐述。

在一个实施例中,数据处理请求为ftp协议的查看文件列表指令:接收ftp协议的查看文件列表指令,将ftp协议的查看文件列表指令转换为grpc协议的查看文件列表指令,并将grpc协议的查看文件列表指令发送至docker容器的容器代理;容器代理对容器进行数据处理并获得数据处理响应;接收容器代理反馈的数据处理响应并反馈给客户端,包括:接收容器代理反馈的grpc协议的文件列表数据,文件列表数据由容器代理根据grpc协议的查看文件列表指令查询得到;将grpc协议的文件列表数据转换为ftp协议的文件列表数据,并发送给客户端。这样用户可以看到容器内的文件列表。

在一个实施例中,数据处理请求为ftp协议的文件存储指令:接收ftp协议的文件存储指令;提取ftp协议的文件存储指令中的文件名、文件数据以及存储指令;通过grpc协议,将文件名、文件数据以及存储指令转发至docker容器的容器代理;容器代理在docker容器中写入文件。

在另一例中,容器代理在docker容器中进行文件存储指令后获得写入成功或写入失败响应;接收容器代理反馈的写入成功或写入失败响应,进行协议转换并反馈给客户端,客户端可知此次文件上传操作是否成功。

在一个实施例中,数据处理请求为ftp协议的文件删除指令:接收ftp协议的文件删除指令,提取ftp协议的文件删除指令中的docker容器中数据的文件名和删除指令,再对将文件名和删除指令进行协议转换,通过grpc协议,传输给docker容器的容器代理的端口上,容器代理收到请求后基于删除指令以及文件名在容器上对该文件名的数据文件进行删除。

在另一例中,容器代理在docker容器中进行文件删除后获得删除成功或删除失败响应;接收容器代理反馈的删除成功或删除失败响应,进行协议转换反馈给客户端,客户端便得知此次文件删除操作是否成功。

在一个实施例中,数据处理请求为ftp协议的文件修改指令。该修改操作是基于上述文件存储指令以及文件删除指令结合的一种操作:先对docker容器中的对应名称的数据文件进行删除,再接收客户端的文件数据做协议转换后发送给docker容器的容器代理,容器代理在docker容器中写入该文件数据。

在另一例中,容器代理在docker容器中进行文件修改后获得修改成功或修改失败响应;接收容器代理反馈的修改成功或修改失败响应,进行协议转换并反馈给客户端,客户端便得知此次文件修改操作是否成功。

在一些具体实施方式中,将客户端的身份标识设置为与docker容器的身份标识相同,这样在对客户端的身份标识校验过程中,只需将客户端的身份标识与docker容器的身份标识进行对比是否相同即可完成校验。

在另一些实施例中,客户端的身份标识设置为需要函数计算与docker容器的身份标识进行对应。

本发明实施例的第二方面还提供一种数据传输方法,图4示出了本发明的数据传输方法的另一实施例的流程示意图,如图4所示,本实施例的数据传输方法,包括通信连接步骤210、转发接收步骤220以及处理步骤230。下面对图4中的各步骤进行详细说明。

通信连接步骤210,在docker容器内与转发代理建立通信连接。

本发明实施例中,转发代理部署在kubernetes集群的一个节点,这样与转发代理之间的通信连接才能实现。本发明实施例中涉及的kubernetes集群的一个节点可以是kubernetes集群的任一个节点,转发代理支持ftp协议,也支持grpc协议。

转发代理开放另一个端口接收kubernetes集群外的用户ftp客户端发送数据处理请求。转发代理与用户ftp客户端之间的数据传输按照ftp协议进行。与kubernetes集群节点上的转发代理建立连接,实现与用户ftp客户端之间的通信连接。

转发接收步骤220,接收转发代理发送的数据处理请求。

处理步骤230,根据数据处理请求,在docker容器内进行数据处理。

本实施例中数据处理请求可以是kubernetes集群外的ftp客户端发送的数据处理请求。上述数据处理请求都需要kubernetes集群节点上的转发代理进行转发才可被接收。设置转发代理,扩大了数据处理请求接收的范围,增强了本实施例数据传输方法的适用范围。

本实施例中所涉及的数据处理请求可以是查看文件列表指令、文件删除指令、文件存储指令、文件修改指令等。

图5示出了本发明数据传输方法的另一些实施例的流程示意图,如图5所示,还包括反馈步骤240:将处理步骤230得到的数据处理响应反馈至转发代理。

在本发明实施例中,接收到数据处理请求之后,基于数据处理请求在docker容器中进行数据处理,完成上述操作之后,可以得到数据处理响应,该数据处理响应可以是操作对应的状态结果,也可以是基于操作得到的数据结果。其中操作对应的状态结果可以包括成功和失败,如删除成功、删除失败、写入成功、写入失败等;操作对应的数据结果可以是查询docker容器中的数据返回的数据列表文件及其他数据文件。反馈数据处理响应可使用户能够了解数据处理请求所对应的操作是否成功或者查看数据处理请求对应的数据。

在一些实施例中将数据处理响应通过grpc协议发送给转发代理,转发代理对数据处理响应做协议转换后成ftp协议的数据处理响应,发送至用户的ftp客户端,用户可根据数据处理响应得到相应的数据处理请求的处理结果。避免了出现现有技术中由于中央节点转发失败,导致用户认为上传了成功了,但实际文件并没有上传到容器的问题。

基于本实施例提供的数据传输方法,通过与转发代理建立通信连接并基于数据处理请求,对docker容器内文件进行处理,获得数据处理响应反馈给转发代理,避免了现有技术中采用cli工具kubectl将文件传输到容器内的方式造成的操作繁琐并且需要操作kubectl的知识积累,手动操作失误造成的数据传输的安全威胁以及效率低的问题。可有效提高kubernetes集群中数据传输的效率及操作的安全性。

在一实施例中,基于docker容器的ip地址,与转发代理建立通信连接。在创建docker容器过程中配置的docker容器的ip地址是唯一确定的,基于docker容器的ip地址确定接收转发代理发送的数据处理请求的传输终点是唯一的,可以确定数据处理请求传输的唯一路径和目的位置。确保数据处理请求传输的安全性,避免了数据处理请求被其他docker容器接收的现象产生。

以下对不同数据处理请求的实施例分别阐述。

在一个实施例中,数据处理请求为grpc协议的查看文件列表指令:接收转发代理发送的grpc协议的查看文件列表指令,基于该grpc协议的查看文件列表指令获取docker容器内的文件列表数据,文件列表数据是基于grpc协议的查看文件列表指令查询得到的。

在接收到grpc协议的查看文件列表指令后,查询docker容器内的文件和目录列表,得到相关的数据结果,返回数据结果至转发代理。转发将接收的grpc协议的数据结果做协议转换,通过ftp协议,最终发送给用户的客户端上。这样用户可看到容器内的文件列表。

在一个实施例中,数据处理请求为grpc协议的文件存储指令:接收转发代理发送的grpc协议的文件存储指令,文件存储指令包括第一文件名、第一文件数据以及存储指令;基于文件存储指令,将第一文件名对应的第一文件数据写入docker容器中。

在另一例中,获得数据处理响应,数据处理响应为写入成功或写入失败;将数据处理响应通过grpc协议反馈至转发代理。

转发代理在接收到写入成功或写入失败的状态结果之后进行协议转换,并发送给用户的ftp客户端,ftp客户端便得知此次文件上传操作是否成功。

在一个实施例中,数据处理请求为grpc协议的文件删除指令:接收转发代理发送的grpc协议的文件删除指令,文件删除指令包括第二文件名以及删除指令;收到请求后,基于第二文件名,在docker容器中查找与第二文件名匹配的第二文件数据;基于删除指令,对docker容器中的第二文件数据进行删除操作。

在另一例中,获得数据处理响应,数据处理响应为删除成功或删除失败;将数据处理响应通过grpc发送给转发代理。

转发代理在接收到删除成功或删除失败状态结果之后进行协议转换,并发送给用户的ftp客户端,ftp客户端便得知此次文件删除操作是否成功。

在一个实施例中,数据处理请求为grpc协议的文件修改指令。该修改操作是基于上述的文件存储指令以及的文件删除指令结合的一种操作,先对docker容器中的对应名称的数据文件进行删除,再接收转发代理的grpc协议的文件数据,在docker容器中写入该文件数据。

在另一例中,获得数据处理响应,数据处理响应为修改成功或修改失败,将数据处理响应通过grpc发送给转发代理。

转发代理在接收到修改成功或修改失败状态结果之后进行协议转换,发送给用户的ftp客户端,ftp客户端便得知此次文件修改操作是否成功。

本发明实施例的第三方面提供一种数据传输方法,图6示出了本发明的数据传输方法的另一实施例的流程示意图,如图6所示,该实施例方法包括:连接转发代理步骤310、发送身份标识步骤320、以及发送数据处理请求步骤330。下面对图6中的各步骤进行详细说明。

连接转发代理步骤310,与转发代理建立通信连接;

本发明实施例中,转发代理部署在kubernetes集群的一个节点,这样与转发代理之间的通信连接才能实现。本发明实施例中涉及的转发代理支持ftp协议,也支持grpc协议。

发送身份标识步骤320,发送身份标识至转发代理,身份标识与docker容器之间具有预设对应关系。

本实施例中,转发代理用于通过身份标识与具有预设对应关系的docker容器内的容器代理建立通信链接。

本实施例中,在kubernetes集群的docker容器创建时,为每一个docker容器配置唯一的docker容器身份标识,这样,每一个docker容器均可以通过该docker容器身份标识被识别,通过docker容器的ip地址被锁定位置。本实施例中身份标识可以是与docker容器的身份标识相同。除此之外,还可以通过其他的本领域技术人员可以实现的方式来匹配身份标识与docker容器,本实施例对此不做具体限定。

在一些具体实施方式中,上述身份标识与docker容器的身份标识均可以是由唯一长串字符组成的,该唯一的长串字符是指在docker容器所在的kubernetes集群中是唯一的。docker容器的身份标识与上述的身份标识只有使用者可知,提高使用者数据传输的安全性以及docker容器中的数据安全性。其中,上述身份标识可以是以上述唯一的长串字符作为用户名的形式配置在客户端,也可以是以用户名与密码组合的形式,进一步提高用户的数据安全性。本实施例中docker容器的身份标识可以修改,但只可以修改为与其他docker容器的身份标识不同,上述的“唯一”只是针对其他docker容器而言,docker容器的身份标识是可以修改的,但修改后要适应性修改与之对应的上述身份标识。

发送数据处理请求步骤330,发送数据处理请求至转发代理。

本实施例中,转发代理用于将数据处理请求转发到docker容器内的容器代理,容器代理用于根据数据处理请求在容器内进行数据处理。

本实施例中所涉及的数据处理请求可以是查看文件列表指令、文件删除指令、文件存储指令、文件修改指令等。

基于本实施例提供的数据传输方法,通过在发送的数据处理请求中设置与docker容器存在预设对应关系的身份标识,提高了数据传输的准确性。

图7示出了本发明数据传输方法的另一些实施例的流程示意图,如图7所示,还包括接收转发反馈步骤340,接收数据处理响应,数据处理响应是由容器代理进行数据处理后得到的并由转发代理转发的。

在一些实施例中,发送身份标识步骤320之后,还包括重新发送步骤:转发代理对身份标识校验结果为失败时,接收转发代理返回的校验结果;基于校验结果,对身份标识进行修改,得到修改后的身份标识;将修改后的身份标识重新发送至转发代理。

本实施例中在转发代理接收身份标识是对身份标识进行校验,判断该kubernetes集群中是否存在与之对应的docker容器,以提高数据传输以及docker容器内数据文件的安全性。校验成功,转发代理与docker容器的容器代理建立通信连接,并可将数据处理请求转发至docker容器内的容器代理,容器代理基于数据请求在docker容器内进行数据处理,并可反馈数据处理响应;校验失败,转发代理返回校验失败结果。

以下对不同数据处理请求的实施例分别阐述。

在一个实施例中,数据处理请求为ftp协议的查看文件列表指令:发送ftp协议的查看文件列表指令至转发代理;接收数据处理响应,包括:接收转发代理接收到的容器代理返回至转发代理的文件列表数据。

在一个实施例中,数据处理请求为ftp协议的文件存储指令:发送ftp协议的数据处理请求至转发代理,文件存储指令包括可被转发代理提取的文件名、文件数据、存储指令。

在另一实施例中,还包括接收数据处理响应:接收转发代理接收到的容器代理返回至转发代理的写入成功或写入失败的数据处理响应。

在一个实施例中,数据处理请求为ftp协议的文件删除指令:发送ftp协议的数据处理请求至转发代理,文件删除指令包括第二文件名以及删除指令。

在另一实施例中,还包括接收数据处理响应:接收转发代理接收到的容器代理返回至转发代理的删除成功或删除失败的数据处理响应。

在一个实施例中,数据处理请求为ftp协议的文件修改指令。该修改操作是基于上述的文件存储指令以及的文件删除指令结合的一种操作:先发出ftp协议的文件删除指令,对docker容器中的对应名称的数据文件进行删除;再发出ftp协议的文件存储指令,在docker容器中写入该文件数据

在另一实施例中,还包括接收数据处理响应:接收转发代理接收到的容器代理返回至转发代理的修改成功或相关失败的数据处理响应。

本公开实施例提供的任一种数据传输方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种数据传输方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种目标检测方法、目标检测网络的训练方法。下文不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

本公开实施例还提供一种数据传输装置,图8示出了本发明的数据传输装置的一个实施例的结构示意图,如图8所示,本实施例的数据传输装置包括:接收单元11、docker容器确定单元12以及转发单元13,其中,接收单元11用于接收客户端发送的客户端的身份标识、客户端发送的数据处理请求;docker容器确定单元12用于基于客户端的身份标识、以及客户端的身份标识与docker容器之间具有的预设对应关系,确定与客户端的身份标识对应的docker容器,与docker容器内的容器代理建立通信连接,其中,容器代理用于根据客户端发送的数据处理请求在docker容器内进行数据处理;转发单元13用于将数据处理请求转发至docker容器内的容器代理。

在一些实施例中,客户端可以为计算机或可移动通讯设备,其中的可移动通讯设备可以是平板电脑、手机等可实现主动数据发送和接收的设备。本实施例对客户端的类型不做具体限定。每一客户端均已与其对应的docker容器的身份标识作为本身的身份标识,采用上述配置可使客户端对应于单独的docker容器,客户端对docker容器的操作只能是针对该docker容器,保障了kubernetes集群中数据传输的针对性以及安全性。客户端的身份标识也可以配置成与docker容器的ip地址一一对应,作为识别客户端与docker容器是否匹配的判断标准。除此之外,还可以通过其他的本领域技术人员可以实现的方式来匹配客户端与docker容器,本实施例对此不做具体限定。

在一些具体的实施方式中,docker容器的身份标识与客户端的身份标识均可以是由唯一长串字符组成的,该唯一的长串字符是指客户端与docker容器所在的kubernetes集群中是唯一的。docker容器的身份标识与客户端的身份标识只有使用者可知,提高使用者数据传输的安全性以及docker容器中的数据安全性。其中,客户端的身份标识可以是以上述唯一的长串字符作为用户名的形式配置在客户端,也可以是以用户名与密码组合的形式配置在客户端,进一步提高用户的数据安全性。

本实施例中docker容器的身份标识可以修改,但只可以修改为与其他docker容器的身份标识不同,上述的“唯一”只是针对其他docker容器而言,docker容器的身份标识是可以修改的,但修改后要适应性修改与之对应的客户端的身份标识。通过客户端的身份标识作为查找kubernetes集群中相应docker容器的依据。由于在创建docker容器过程中配置的docker容器的身份标识是唯一确定的,且客户端是以docker容器的身份标识作为客户端身份标识,所以,基于客户端的身份标识确定与之对应的docker容器的结果是唯一的。

在一些具体实施方式中,docker容器确定单元12对docker容器进行确定的结果可以分为两种:成功、失败。客户端的身份标识与docker容器的身份标识匹配成功,则通信单元可以与匹配成功的docker容器建立连接,进而转发单元13可以进行数据传输;客户端的身份标识与docker容器的身份标识匹配失败,则表明客户端的身份标识对应的客户端在kubernetes集群中没有对应的docker容器,或者具有该客户端身份标识的客户端不属于该kubernetes集群中的节点,不可以实现该客户端与kubernetes集群中的docker容器的连接,不可进行数据传输。

本实施例中,在docker容器确定单元12确定与客户端对应的docker容器后,与docker容器建立通信连接,该通信连接可以是长久有效的。在保持通信连接的情况下,客户端可以通过转发单元13发送数据处理请求至docker容器中,从而实现客户端与docker容器之间的通信连接,在客户端与docker容器之间直接进行数据传输。

本实施例中,转发单元13在处理只包含操作指令的数据处理请求情况下,例如查看文件列表指令、文件删除指令,在确定了对应的docker容器之后直接将数据处理请求发送至docker容器中;在处理既包含文件数据又包含操作指令的数据处理请求情况下,接收单元11首先接收操作指令并通过docker容器确定单元12确定相应的docker容器,然后转发单元13根据操作指令将存储在客户端的文件数据直接转发到docker容器的容器代理上。避免了在kubernetes集群的中间节点上对文件数据进行再次存储的弊端,节约了存储空间,避免了产生采用ftp中央服务器转存的方式需要中央ftp节点存储该文件,造成中央ftp节点需要隔离用户文件、设置目录以及专门的进程监听所有目录,实现成本高、效率低的问题。通过在docker容器上设置容器代理,避免了采用cli工具kubectl将代码传输到容器内,操作繁琐并且需要操作kubectl的知识积累的弊端。

在一实施例中,图9示出了本发明的数据传输装置的另一实施例的结构示意图,如图9所示,本实施例的数据传输装置还包括反馈接收单元14,该反馈接收单元14用于接收容器代理反馈的数据处理响应,数据处理响应是容器代理进行数据处理请求后得到的。转发单元13还用于转发数据处理响应至客户端。通过设置容器代理在docker容器依据操作指令进行数据处理并得到数据处理响应,通过转发单元13将数据处理响应返回至客户端,避免了采用ftp中央服务器转存的方式不能明确知晓数据处理请求是否到达docker容器,或者操作是否成功的弊端。提高了数据传输的效率以及安全性。

在一实施例中,本实施例的docker容器确定单元12,还用于确定与身份标识对应的docker容器的互联网协议地址;通信单元基于确定的互联网协议地址与docker容器内的容器代理建立通信连接;转发单元13基于互联网协议地址,将数据处理请求发送至docker容器的容器代理。

在创建docker容器过程中配置的docker容器的ip地址是唯一确定的,基于docker容器的ip地址确定接收转发代理发送的数据处理请求的传输终点是唯一的,可以确定数据处理请求传输的唯一路径和目的位置。确保数据处理请求传输的安全性,避免了数据处理请求被其他docker容器接收的现象产生。

在一实施例中,本实施例的docker容器确定单元12,还用于基于预设对应关系对客户端的身份标识进行校验,并获得校验结果,响应于校验结果为成功,基于预设对应关系确定与客户端的身份标识对应的docker容器;响应于校验结果为失败,将校验结果返回客户端并提示客户端重新发送客户端的身份标识。

校验失败后,docker容器确定单元12将校验结果返回客户端,客户端根据校验结果检查输入的身份标识或者密码是否输入正确,对身份标识或者密码进行修改后重新发送数据处理请求至身份标识校验单元进行校验,直至校验成功。

通过设置docker容器确定单元12,在接收单元11接收客户端的数据处理请求之前,对客户端的身份标识进行校验,确定该客户端为与docker容器匹配的客户端,或确定在kubernetes集群中存在与客户端匹配的docker容器,进一步提高了数据传输的安全性。

在一实施例中,转发单元13用于通过grpc协议,将数据处理请求发送至docker容器的容器代理,反馈接收单元14用于通过grpc协议,接收数据处理响应;转发单元13用于通过grpc协议,转发数据处理响应。本实施例中grpc协议是谷歌发布的一个基于http2承载的高性能、通用的rpc开源软件框架。通信双方都基于该框架进行二次开发,从而使得通信双方聚焦在业务,无需关注由grpc框架实现的底层通信。grpc协议在客户端支持多语言,客户端支持ios,android,而基于http2的多路复用也的确让设备真正的省流量,省电,省空间。本实施例中转发单元13还可以按照其他类型的协议将数据处理请求发送至docker容器的容器代理,例如http协议、grc协议、rpc协议或其他类型的协议。本实施例针对适用范围优选为ftp协议,在实际操作过程中可以根据实际情况对选择的协议类型进行筛选。

以下对不同数据处理请求的实施例分别阐述。

在一个例中,数据处理请求为ftp协议的查看文件列表指令,转发单元13用于通过grpc协议,将ftp协议的查看文件列表指令转换为grpc协议的查看文件列表指令,并将grpc协议的查看文件列表指令发送至docker容器的容器代理;反馈接收单元14用于接收容器代理反馈的grpc协议的文件列表数据,文件列表数据由容器代理根据grpc协议的查看文件列表指令查询得到;转发单元13用于将grpc协议的文件列表数据转换为ftp协议的文件列表数据,并发送给客户端。

在另一例中,数据处理请求为ftp协议的文件存储指令;转发单元13用于提取ftp协议的文件存储指令中的文件名、文件数据以及存储指令,并通过grpc协议,将文件名、文件数据以及存储指令转发至docker容器的容器代理。在转发单元13将文件数据转发至docker容器的容器代理之前,文件数据仍存储在客户端上。当docker容器地址获取单元确定与身份标识对应的docker容器的互联网协议地址之后,转发单元13将文件数据指引文件数据传输的路径。文件数据直接从客户端按照转发单元13指引的路径传输至docker容器的容器代理上,其间未在转发单元13上进行存储。避免了产生采用ftp中央服务器转存的方式需要中央ftp节点存储该文件,造成中央ftp节点需要隔离用户文件、设置目录以及专门的进程监听所有目录,实现成本高、效率低的问题,节省资源空间。

在另一例中,数据处理请求为ftp协议的文件删除指令;转发单元13用于提取ftp协议的文件删除指令中的文件名以及删除指令;通过grpc协议将文件名以及删除指令转发至docker容器的容器代理。

以上具体实例中数据传输的协议均可以通过其他协议进行替换,如http协议、grc协议、rpc协议或其他类型的协议等。

本公开的实施例还提供一种数据传输装置,图10示出了本公开的数据传输装置的另一实施例的结构示意图,如图10所示,本实施例的数据传输装置包括通信连接单元21、数据处理请求接收单元22、请求处理单元23,其中,通信连接单元21用于在docker容器内与转发代理建立通信连接;数据处理请求接收单元22用于接收转发代理发送的数据处理请求;请求处理单元23用于根据数据处理请求,在docker容器内进行数据处理。

本实施例中的转发代理部署到kubernetes集群的任一节点即可。用户通过ftp客户端,使用docker容器的身份标识作为ftp客户端的身份标识,对转发代理进行连接请求。

本实施例通过与转发代理之间建立通信连接,接收客户端的数据处理请求,并根据数据处理请求中的操作指令在docker容器中进行操作,用户只需在客户端输入数据处理请求即可完成在docker容器内的数据操作,避免了采用cli工具kubectl将代码传输到容器内,操作繁琐并且需要操作kubectl的知识积累的弊端。

在一实施例中,图11示出了本发明的数据传输装置的另一实施例的结构示意图,如图11所示,本实施例的数据传输装置还包括数据处理响应反馈单元24,用于将请求处理单元23得到的数据处理响应反馈至转发代理。通过设置数据处理响应反馈单元24,避免了采用ftp中央服务器转存的方式不可以得知中央ftp节点是否转发成功的弊端,提高了数据传输的准确性。

在一实施例中,通信连接单元21用于基于docker容器的互联网协议地址与转发代理建立通信连接。数据处理请求接收单元22用于通过grpc协议,接收转发代理发送的数据处理请求。数据处理响应反馈单元24,用于通过grpc协议,将数据处理响应反馈给转发代理。本实施例中数据处理请求接收单元22还可以按照其他类型的协议接收转发代理发送的数据处理请求,或者数据处理响应反馈单元24通过其他将数据处理响应反馈给转发代理,例如http协议、grc协议、rpc协议或其他类型的协议。

以下对不同数据处理请求的实施例分别阐述。

在一例中,数据处理请求为grpc协议的查看文件列表指令。请求处理单元23用于获取docker容器内的文件列表数据,其中,文件列表数据是基于grpc协议的查看文件列表指令查询得到的;数据处理响应反馈单元24,用于将文件列表数据通过grpc协议反馈至转发代理。

在另一例中,数据处理请求为grpc协议的文件存储指令,文件存储指令包括第一文件名、第一文件数据以及存储指令;请求处理单元23用于基于存储指令,将第一文件名对应的第一文件数据写入docker容器中。

在另一例中,数据处理请求为grpc协议的文件删除指令,删除指令包括第二文件名以及删除指令;请求处理单元23用于基于第二文件名,在docker容器中查找与第二文件名匹配的第二文件数据;基于删除指令,对docker容器中的第二文件数据进行删除操作。

本公开实施例中还提供一种数据传输装置,图12示出了本发明的数据传输装置的一个实施例的结构示意图,如图12所示,本实施例的数据传输装置包括转发代理连接单元31、身份标识发送单元32、数据处理请求发送单元33。其中,转发代理连接单元31用于与转发代理建立通信连接;身份标识发送单元32,用于发送身份标识至转发代理,身份标识与docker容器之间具有预设对应关系,转发代理用于通过身份标识与具有预设对应关系的docker容器内的容器代理建立通信连接;数据处理请求发送单元33,用于发送数据处理请求至转发代理,其中,转发代理用于将数据处理请求转发到docker容器内的容器代理,容器代理用于根据数据处理请求在容器内进行数据处理。

本实施例通过与转发代理建立通信连接,通过转发代理与docker容器内设置的容器代理通信连接,用户只需发送数据处理请求即可完成在docker容器内进行数据操作,避免了采用cli工具kubectl将代码传输到docker容器内,操作繁琐并且需要操作kubectl的知识积累的弊端。通过设置与docker容器存在预设关系的身份标识,进一步提高了数据传输的安全性,避免了通过复杂程序查找docker容器,提高了数据传输的效率。

图13示出了本发明的数据传输装置的一个实施例的结构示意图,如图13所示,本实施例的数据传输装置还包括数据处理响应接收单元34,用于接收数据处理响应,数据处理响应是由容器代理进行数据处理后得到的并由转发代理转发的。

本实施例通过设置数据处理响应接收单元34,在客户端即可得知数据处理请求是否完成,或者基于数据处理请求的操作是否操作成功。避免了采用ftp中央服务器转存的方式不可以得知中央ftp节点是否转发成功的弊端,提高了数据传输的准确性。

在一实施例中,身份标识发送单元32,还用于转发代理对身份标识校验结果为失败时,接收转发代理返回的校验结果;基于校验结果,对身份标识进行修改,得到修改后的身份标识;将修改后的身份标识重新发送至转发代理。重新发送至转发代理的修改后的身份标识与docker容器的身份标识相匹配,通过修改后的身份标识可通过转发代理的身份标识校验,使数据处理请求发送单元33可通过转发代理连接单元31与转发代理之间可进行数据传输。

以下对不同数据处理请求的实施例分别阐述。

在一例中,转发代理连接单元31,用于基于ftp协议与转发代理建立通信连接;数据处理请求发送单元33,用于发送ftp协议的查看文件列表指令至转发代理;数据处理响应接收单元34,用于接收转发代理接收到的容器代理返回至转发代理的文件列表数据。

在另一例中,转发代理连接单元31,用于基于ftp协议,与转发代理建立通信连接;数据处理请求发送单元33,用于发送ftp协议的文件存储指令至转发代理,文件存储指令包括可被转发代理提取的文件名、文件数据、存储指令。

在另一例中,转发代理连接单元31,用于基于ftp协议,与转发代理建立通信连接;数据处理请求发送单元33,用于发送ftp协议的删除指令至转发代理。

图14为本发明实施例电子设备一个应用实施例的结构示意图。下面参考图14,其示出了适于用来实现本申请实施例的终端设备或服务器的电子设备的结构示意图。如图14所示,该电子设备包括存储器,用于存储计算机程序以及一个或多个处理器,用于执行存储器中存储的计算机程序。在一例中,存储器可以是只读存储器(rom)和/或随机访问存储器(ram)。在一例中,一个或多个处理器可以是一个或多个中央处理单元(cpu),和/或一个或多个图像处理器(gpu)等,处理器可以根据存储在rom中的可执行指令或者从存储部分加载到ram中的可执行指令而执行各种适当的动作和处理。在一例中,电子设备还可以包括通信部,通信部可包括但不限于网卡,网卡可包括但不限于ib(infiniband)网卡,处理器可与rom和/或ram中通信以执行可执行指令,通过总线与通信部相连、并经通信部与其他目标设备通信,从而完成本申请实施例提供的任一方法对应的操作,例如,接收客户端发送的客户端的身份标识;基于客户端的身份标识、以及客户端的身份标识与docker容器之间具有的预设对应关系,确定与客户端的身份标识对应的docker容器;与docker容器内的容器代理建立通信连接,容器代理用于根据客户端发送的数据处理请求在docker容器内进行数据处理;接收客户端发送的数据处理请求;将数据处理请求转发至docker容器内的容器代理。

此外,在ram中,还可存储有装置操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。在有ram的情况下,rom为可选模块。ram存储可执行指令,或在运行时向rom中写入可执行指令,可执行指令使处理器执行本发明上述任一方法对应的操作。输入/输出(i/o)接口也连接至总线。通信部可以集成设置,也可以设置为具有多个子模块(例如多个ib网卡),并在总线链接上。

以下部件连接至i/o接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至i/o接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。

需要说明的,如图14所示的架构仅为一种可选实现方式,在具体实践过程中,可根据实际需要对上述图14的部件数量和类型进行选择、删减、增加或替换;在不同功能部件设置上,也可采用分离设置或集成设置等实现方式,例如gpu和cpu可分离设置或者可将gpu集成在cpu上,通信部可分离设置,也可集成设置在cpu或gpu上,等等。这些可替换的实施方式均落入本发明公开的保护范围。

在一个或多个可选实施方式中,本公开实施例还提供了一种计算机可读存储介质,用于存储计算机可读指令,该指令被执行时使得计算机执行上述任一可能的实现方式中的数据传输方法。在另一个可选例子中,该计算机程序产品具体体现为软件产品,例如软件开发包(softwaredevelopmentkit,sdk)等等。

尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。

本发明的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“模块”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。

此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件模块来执行或实现。在一个实施方式中,软件模块使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。

出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。

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