一种本地镜像上传多地域私有镜像仓库的方法与流程

文档序号:21102220发布日期:2020-06-16 20:55阅读:505来源:国知局
一种本地镜像上传多地域私有镜像仓库的方法与流程

本发明涉及计算机软件技术应用技术领域,特别涉及一种本地镜像上传多地域私有镜像仓库的方法,具体来说是云计算docker容器镜像存储技术。



背景技术:

云计算技术发展至今,从最开始的硬件虚拟化、iaas、openstack、paas、容器设置到如今的serverless,云计算已经越来越接近应用逻辑。容器实现了应用的分装,方便了应用在不同环境间的迁移,轻量级的特性又使它能够消耗更少的资源而带来更大的便利。

一般容器镜像只能通过docker客户端来上传镜像,可能由于种种原因用户无法安装docker客户端(例如操作系统不是windows专业版),如何让用户能够通过浏览器便可以快速上传本地的镜像文件到私有镜像仓库成为一个需要解决的问题。

现有技术中存在着以下几点缺点:

1、只能逐个上传镜像文件,无法并发上传多个镜像文件;

2、当需要将镜像上传到多个地域中某个镜像仓库时,镜像文件预存至一个统一的临时位置,再由临时位置再往指定镜像仓库推送镜像,该流程过于复杂且当大文件频繁的在各个主机之间传输需要更多的时间,影响用户的体验。



技术实现要素:

针对现有技术存在的不足,本发明的目的在于提供一个通过浏览器快速上传本地镜像文件到多地域镜像仓库的方法,可通过浏览器同时传输多个镜像文件,并且直接将文件存储在目标主机上,并通过内网极速上传镜像,不占用公网带宽。

本发明的上述技术目的是通过以下技术方案得以实现的:

一种本地镜像上传多地域私有镜像仓库的方法,由浏览器、控制面、代理器和镜像仓库多部分协同完成,基于多台主机内对应的控制面和多个代理器,通过控制面拥有所有代理器的地址,浏览器上传镜像时先访问控制面获得指定代理器的地址,然后直接访问代理器并上传文件。

这么做的好处是将大数据包的流向由浏览器到控制面分发到镜像仓库的传统方式简化为由浏览器直接到镜像仓库,降低了传输所需要花费的时间。

一种本地镜像上传多地域私有镜像仓库的方法,由浏览器、控制面、代理器和镜像仓库多部分协同完成,所述方法包含以下步骤:

步骤1,用户通过浏览器选择多个本地的镜像文件和目标镜像仓库名,浏览器根据镜像文件的基本信息和目标镜像仓库名访问镜像服务的控制面;

步骤2,控制面根据用户的信息判断该用户是否具有上传权限,若有上传权限则请求代理器,控制面根据每个文件的基本信息进行加密,并生成一个该文件专属的一个文件上传的代理器地址;若没有权限则提示上传失败;

步骤3,浏览器将镜像文件进行分片形成分片文件,分别传输至步骤2返回的文件上传的代理器地址上;代理器接收到分片文件后,对分片文件的加密部分进行解密,并校验用户本次上传的镜像文件和解密后的内容是否对应,若校验通过则该分片文件有效,进行保存;当所有分片文件传输完成后,代理器将分片文件进行合并;

步骤4,得到合并文件后,代理器通过docker提供的工具包,将合并后的镜像文件上传至用户指定的私有仓库中。

进一步优选为,所述步骤1中镜像文件的基本信息包含文件名、文件大小、根据镜像文件内容加密后的预加密字符串。

进一步优选为,所述加密字符串通过base64对文件内容进行编码完成加密。

进一步优选为,所述步骤2涉及镜像文件的基本信息加密和生成文件上传的代理器地址,所述步骤2的处理步骤具体如下:

步骤2.1,控制面根据步骤1获得的目标镜像仓库名进行查询数据库,获取目标镜像仓库的代理器地址,并将镜像文件的基本信息发送到指定代理器;

步骤2.2,代理器根据步骤2.1获得的镜像文件基本信息再次进行加密获得前加密字符串,将前加密字符串与代理器地址进行拼接后返回控制面,并由控制面返回给浏览器。

进一步优选为,所述步骤3具体操作步骤如下:

步骤3.1,浏览器对镜像文件进行分片形成分片文件,并对每个分片文件的内容进行加密获得后加密字符串;将分片文件、后加密字符串、文件索引一起发送到步骤2.2获得的代理器地址上;

步骤3.2,代理器对步骤3.1获得的文件根据相同的方式进行加密,并与浏览器给的预加密字符串进行比较,若相同则表示该文件安全并根据索引存储到本地,若不相同则报错返回给浏览器。

进一步优选为,所述步骤3中对分片文件进行合并具体通过:代理器接收到所有分片文件后,从本地按照索引将分片文件全部一起进行加密计算,加密后的字符串与代理器中的前加密字符串进行比较;若相同则将所有分片文件进行合并,否则报错给浏览器。

综上所述,本发明对比于现有技术的有益效果为:

1、解决用户无docker客户端无法进行上传镜像的问题;

2、代理器和镜像仓库位于同一台主机,用户上传文件后,代理器可以通过内网快速将镜像文件上传至harbor中。

附图说明

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

图1为实施例中数据流向图。

具体实施方式

以下结合附图对发明作进一步详细说明。

下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。说明书中的“实施例”或“实施方式”既可表示一个实施例或一种实施方式,也可表示一些实施例或一些实施方式的情况。

本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

根据本发明的实施方式,提出了一种本地镜像上传多地域私有镜像仓库的方法。

需要说明的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。

下面对本发明中所涉及的技术术语进行简单描述,以便相关人员更好的理解本方案。

控制面:其用于控制数据的流向,在多地域镜像仓库的环境下,浏览器上传镜像到指定地域的镜像仓库时,浏览器先访问控制面,控制面返回对应镜像仓库的地址,浏览器得到地址后直接往该地址上传输文件。

控制面拥有所有代理器的地址,浏览器上传镜像时先访问控制面获得指定代理器的地址,然后直接访问代理器并上传文件;这么做的好处是将大数据包的流向由浏览器到控制面分发到镜像仓库的传统方式简化为由浏览器直接到镜像仓库,降低了传输所需要花费的时间。

docker:是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的linux机器或windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。

一种本地镜像上传多地域私有镜像仓库的方法,参照图1所示,由浏览器、控制面、代理器和镜像仓库多部分协同完成,基于多台主机内对应的控制面和多个代理器,通过控制面拥有所有代理器的地址,浏览器上传镜像时先访问控制面获得指定代理器的地址,然后直接访问代理器并上传文件。

具体的一个实施过程如下所示:

1、用户在浏览器中选择docker镜像和目标镜像仓库名;

2、浏览器发送步骤1选择的镜像的基本信息(包括文件名,文件大小,根据文件内容加密后的预加密字符串)和目标镜像仓库到控制面;

3、控制面根据步骤2获得的目标镜像仓库查询数据库,获取目标镜像仓库的代理器地址,并将镜像的基本信息发送到指定代理器;

4、代理器根据步骤3获得的镜像基本信息再次进行加密获得前加密字符串(注:加密字符串不可逆,即无法从加密字符串还原到文件内容),将前加密字符串与代理器地址进行拼接后返回控制面,并由控制面返回给浏览器;

5、浏览器对镜像文件进行分片,并对每个分片的内容进行加密获得后加密字符串;将分片后文件,后加密字符串,文件索引一起发送到步骤4获得的代理器地址上;

6、代理器对步骤5获得的文件根据相同的方式进行加密,并与浏览器给的预加密字符串进行比较,若相同则表示该文件安全并根据索引存储到本地,若不相同则报错返回给浏览器;

7、代理器接收到所有分片文件后,从本地按照索引将分片文件全部一起进行加密计算,加密后的字符串与代理器中的前加密字符串(步骤4中代理器地址拼接上了加密字符串)进行比较;若相同则将所有分片文件进行合并,否则报错给浏览器;

8、代理器通过docker提供的工具包将合并后的镜像文件上传到镜像仓库中。

上述出现的预加密字符串、前加密字符串、后加密字符串本质上都是经过加密处理之后的字符串,因出现在不同的步骤,后续都在不同的步骤有与其他字符串对比的情况,名称的不同只是为了区分,没有其他的含义;如前加密字符串、后加密字符,只是因为前加密字符串在较前的步骤中先加密完成,由此通过前和后的用词来区别两个不同步骤的内容。

上述步骤5中,浏览器对镜像文件进行分片,并不是对所有的镜像文件进行分片,只对超过一定大小的文件进行分片,如设定每个分片大小为8m,不足8m的文件不进行分割,举例说明:文件a大小为5m,则不进行分割;文件b大小为13m,则会分割为1个8m,1个5m的分片文件。

要对文件进行分割的是因为较大文件在网络中传输时,若网络环境发生波动则会导致整个传输失败,例如正在传输一个2g的文件花费了15分钟传输了一半,这时候断网了那么整个传输过程就失败了,需要重新开始传输;使用分片后若发生上述问题可直接从发生问题的位置重新上传。

设置为8m的原因是:基于目前服务器带宽和内存设置的一个比较合理的值,不会单独一个服务就占用服务器大量的带宽和内存;太小的话则会产生大量的碎片文件折中考虑选择了8m,但不局限于8m。

以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。

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