一种云平台资源跨项目转让方法、系统及计算机存储介质与流程

文档序号:26855200发布日期:2021-10-09 03:27阅读:105来源:国知局
一种云平台资源跨项目转让方法、系统及计算机存储介质与流程

1.本发明涉及云平台技术领域,尤其涉及一种云平台资源跨项目转让方法、系统及计算机存储介质。


背景技术:

2.云计算平台也称云平台,是指基于硬件资源和软件资源的服务,提供计算、网络和存储能力。在当前在云平台环境下,一个云平台资源一旦创建完成后,将无法改变它的隶属关系。也就是说,一个云平台资源的整个生命周期将在一个项目下完成。虽然这能够应付大部分的用户场景,但是对于某些特殊的用户场景下,一项工作需要多用户配合完成,典型的流水线作业场景下,则需要资源转让特性来满足此需求。
3.例如,云平台的一个项目会分配给一个公司部门,项目下的用户会分配给该部门下的对应员工。当遇到部门间合作完成一项工程时,需要将项目a的资料(存放在云平台项目a的云主机或云硬盘或文件存储实例)转交给项目b,传统方式需要用户拷贝数据好进行线下转交。为了提高工作效率,云平台急需提供一种转让机制,可以让用户在线资源跨项目转让给平台内其他项目用户。


技术实现要素:

4.有鉴于此,本发明提出了一种云平台资源跨项目转让方法、系统及计算机存储介质,实现了云平台环境中资源的跨项目转让,操作简单、方便,可以保障资源安全的转让给指定的受让用户,提升了云平台项目间交互能力,满足了用户间交互的需求。
5.基于上述目的,本发明实施例的一方面提供了一种云平台资源跨项目转让方法,具体包括如下步骤:接收转让请求,并基于转让请求生成待转让资源的槽位以及认证密钥,其中转让请求包含待转让资源的转让描述以及资源id;对所述槽位与所述认证密钥进行哈希运算,以得到加密哈希认证字符串;生成待转让资源的转让id并且基于所述资源id获取待转让资源所在项目id,并基于所述转让id、所述待转让资源所在项目id、所述槽位、所述认证密钥以及所述加密哈希认证字符串构造转让结构体,并将所述转让结构体写入数据库;在所述数据库生成所述转让结构体的转让记录,并在所述转让记录中将所述待转让资源的资源状态置为等待转让中;基于所述转让请求将所述转让id、所述认证密钥、所述转让描述以及所述资源id返回给转让用户。
6.在一些实施方式中,方法还包括:接收对待转让资源的受让请求,其中,受让请求包含所述转让id与所述认证密钥;基于所述转让id在数据库中获取对应的插槽以及加密哈希认证字符串;对所述对应的插槽以及受让请求中的所述认证密钥进行哈希计算,得到受让加密
哈希认证字符串,并将所述受让加密哈希认证字符串与获取的所述加密哈希认证字符串进行比较,并基于比较结果判断是否认证成功;响应于认证成功,判断所述受让用户所在项目是否有容纳所述待转让资源的项目配额;响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额。
7.在一些实施方式中,方法还包括:响应于所述受让用户所在项目无容纳所述待转让资源的项目配额,则返回错误信息给所述受让用户。
8.在一些实施方式中,响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额,还包括:通过数据库将所述待转让资源所在项目id以及用户id变更为受让用户所在项目id以及用户id,并将所述待转让资源的状态置为可用。
9.在一些实施方式中,方法还包括:响应于所述资源状态为等待转让中并且接收到取消转让请求,其中,所述取消转让请求包含所述待转让资源的转让id;从数据库中查找所述转让id对应的转让记录;响应于找到所述转让记录,删除所述转让记录,并将所述资源状态置为可用。
10.在一些实施方式中,方法还包括:响应于未找到所述转让记录,则返回报错信息给所述转让用户。
11.在一些实施方式中,生成待转让资源的转让id,包括:基于uuid4算法,生成随机uiid字符串,将所述字符串作为待转让资源的转让id。
12.在一些实施方式中,所述转让请求为转让rest请求,所述转让rest请求配置为将要传递的信息放入转让rest请求的请求体,并在得到返回信息后,将所述返回信息放入转让rest请求的返回体,以将所述返回信息返回所述转让用户,其中,所述要传递的信息包括所述转让描述以及所述资源id,所述返回信息包括将所述转让id、所述认证密钥、所述转让描述以及所述资源id。
13.本发明实施例的另一方面,还提供了一种云平台资源跨项目转让系统,包括:请求接收模块,所述请求接收模块配置为接收转让请求,并基于转让请求生成待转让资源的槽位以及认证密钥,其中转让请求包含待转让资源的转让描述以及资源id;哈希运算模块,所述哈希运算模块配置为对所述槽位与所述认证密钥进行哈希运算,以得到加密哈希认证字符串;构造模块,所述构造模块配置为生成待转让资源的转让id并且基于所述资源id获取待转让资源所在项目id,并基于所述转让id、所述待转让资源所在项目id、所述槽位、所述认证密钥以及所述加密哈希认证字符串构造转让结构体,并将所述转让结构体写入数据库;生成记录模块,所述生成记录模块配置为在所述数据库生成所述转让结构体的转让记录,并在所述转让记录中将所述待转让资源的资源状态置为等待转让中;请求返回模块,所述请求返回模块配置为基于所述转让请求将所述转让id、所述
认证密钥、所述转让描述以及所述资源id返回给转让用户。
14.在一些实施方式中,系统还包括:受让接收模块,受让接收模块配置为接收对待转让资源的受让请求,其中,受让请求包含所述转让id与所述认证密钥;获取模块,获取模块配置为基于所述转让id在数据库中获取对应的插槽以及加密哈希认证字符串;比较模块,比较模块配置为对所述对应的插槽以及受让请求中的所述认证密钥进行哈希计算,得到受让加密哈希认证字符串,并将所述受让加密哈希认证字符串与获取的所述加密哈希认证字符串进行比较,并基于比较结果判断是否认证成功;判断模块,判断模块配置为响应于认证成功,判断所述受让用户所在项目是否有容纳所述待转让资源的项目配额;转让模块,转让模块配置为响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额。
15.在一些实施方式中,转让模块还配置为:响应于所述受让用户所在项目无容纳所述待转让资源的项目配额,则返回错误信息给所述受让用户。
16.在一些实施方式中,响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额,还包括:通过数据库将所述待转让资源所在项目id以及用户id变更为受让用户所在项目id以及用户id,并将所述待转让资源的状态置为可用。
17.在一些实施方式中,系统还包括:响应于所述资源状态为等待转让中并且接收到取消转让请求,其中,所述取消转让请求包含所述待转让资源的转让id;从数据库中查找所述转让id对应的转让记录;响应于找到所述转让记录,删除所述转让记录,并将所述资源状态置为可用。
18.在一些实施方式中,系统还包括:响应于未找到所述转让记录,则返回报错信息给所述转让用户。
19.在一些实施方式中,生成待转让资源的转让id,包括:基于uuid4算法,生成随机uiid字符串,将所述字符串作为待转让资源的转让id。
20.在一些实施方式中,所述转让请求为转让rest请求,所述转让rest请求配置为将要传递的信息放入转让rest请求的请求体,并在得到返回信息后,将所述返回信息放入转让rest请求的返回体,以将所述返回信息返回所述转让用户,其中,所述要传递的信息包括所述转让描述以及所述资源id,所述返回信息包括将所述转让id、所述认证密钥、所述转让描述以及所述资源id。
21.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
22.本发明具有以下有益技术效果:实现了云平台环境中资源的跨项目转让,操作简单、方便,安全性强,提升了云平台项目间交互能力,满足用户间交互的需求,提升了云平台的易用性与便捷性。
附图说明
23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
24.图1为本发明提供的云平台资源跨项目转让方法的一实施例的框图;图2为本发明提供的生成转让信息的一实施例的流程示意图;图3为本发明提供的受让用户接受待转让资源的一实施例的流程示意图;图4为本发明提供的为取消转让的一实施例的流程示意图;图5为本发明提供的云平台资源跨项目转让方法的一实施例的示意图;图6为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
25.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
26.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
27.下面对本发明提到的一些专有名词进行解释。
28.云平台资源:用户在云平台内创建的云主机、云硬盘、文件存储实例、网络实例等都属于平台资源,任何资源都隶属于云平台内指定的项目和用户,且不同项目下的资源相互隔离,无法跨项目访问资源。
29.资源跨项目转让:是指云平台内资源拥有者(某个项目下的某个用户)将自己的特定资源转设置为待转让状态,并生成认证信息。将认证信息告知要接受转让的指定项目下的指定用户,完成资源转让认证过程,最终该特定资源将改变隶属关系,由源项目和用户更改为接受转让的项目和用户。接受资源转让的行为我们称为:受让。
30.项目配额:在云平台上有不同的项目,每个项目下又具有多个用户。每个项目都有自己的项目配额,即该项目下最大能具有多少个资源,最大能分配多大容量的资源,项目用户创建新的资源或者受让资源都不能超过此配额限制,超过则会操作失败。
31.基于上述目的,本发明实施例的第一个方面,提出了一种云平台资源跨项目转让方法的实施例。如图1所示,其包括如下步骤:s101、接收转让请求,并基于转让请求生成待转让资源的槽位以及认证密钥,其中转让请求包含待转让资源的转让描述以及资源id;s103、对所述槽位与所述认证密钥进行哈希运算,以得到加密哈希认证字符串;s105、生成待转让资源的转让id并且基于所述资源id获取待转让资源所在项目id,并基于所述转让id、所述待转让资源所在项目id、所述槽位、所述认证密钥以及所述加密哈希认证字符串构造转让结构体,并将所述转让结构体写入数据库;s107、在所述数据库生成所述转让结构体的转让记录,并在所述转让记录中将所述待转让资源的资源状态置为等待转让中;
s109、基于所述转让请求将所述转让id、所述认证密钥、所述转让描述以及所述资源id返回给转让用户。
32.如图2所示,为用户向服务器发送转让请求生成转让信息的流程示意图。
33.用户(转让用户)向服务器发出转让请求,请求内包含待转让资源的资源idresource_id以及转让描述display_name;服务器接收到转让请求后,随机生成2个字符串,一个是槽位slot,默认长度为8,一个是认证秘钥auth_token,默认长度为16,将slot和auth_token通过,hash(哈希)运算加密,得到一个加密后的加密哈希认证字符串crypt_hash;生成转让id,长度为32,作为本次转让的唯一id,并获取待转让资源当前所在的项目idsource_project_id,并构造转让结构体,转让结构体包括:accepted(是否完成受让,布尔值,初始值为false,完成受让后,置为true),转让id,display_name(转让描述),crypt_hash(加密哈希认证字符串),slot(槽位),resource_id(资源id),source_project_id((待转让资源当前所在的项目id),destination_project_id(受让完成后,会完善此信息,初始值为空);将以上转让结构体写入数据库,即在数据库中新增一条转让记录,并将待转让资源的资源状态置为“等待转让中”。将要返回的信息——转让id,auth_token,resoruce_id,display_name——放入转让请求中,并返回给转让用户。
34.用户将转让id和auth_token告知受让用户。受让用户基于转让id和auth_token向服务器发送接受转让请求,即受让请求,来完成资源受让。
35.通过上述实施例,基于云平台中服务器与数据库的交互,生成了资源转让信息,并返回给了转让用户,使转让用户可以向受让用户发送资源转让信息,使受让用户可以基于服务器完成资源受让,实现了云平台环境中,资源的跨项目转让,操作简单、方便,安全性强。
36.在一些实施方式中,方法还包括:接收对待转让资源的受让请求,其中,受让请求包含所述转让id与所述认证密钥;基于所述转让id在数据库中获取对应的插槽以及加密哈希认证字符串;对所述对应的插槽以及受让请求中的所述认证密钥进行哈希计算,得到受让加密哈希认证字符串,并将所述受让加密哈希认证字符串与获取的所述加密哈希认证字符串进行比较,并基于比较结果判断是否认证成功;响应于认证成功,判断所述受让用户所在项目是否有容纳所述待转让资源的项目配额;响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额。
37.在一些实施方式中,方法还包括:响应于所述受让用户所在项目无容纳所述待转让资源的项目配额,则返回错误信息给所述受让用户。
38.在一些实施方式中,响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额,还包括:通过数据库将所述待转让资源所在项目id以及用户id变更为受让用户所在项目id以及用户id,并将所述待转让资源的状态置为可用。
39.下面通过具体的实施例对本发明的多个实施方式进行说明。
40.如图3所示,为受让用户接受待转让资源的流程示意图。
41.服务器接收受让用户对待转让资源的受让rest请求,受让rest请求包含转让id和认证秘钥auth_token,服务器根据转让id,去数据库内查找对应此id的槽位slot,以及预存在数据库中的crypt_hash;使用槽位slot和受让rest请求提供的auth_token进行哈希运算得到一个实时计算的受让加密哈希认证字符串calculate_crypt_hash;对比calculate_crypt_hash和crypt_hash是否一致,不一致则认证失败,即不能接受转让,返回错误信息;一致则继续检查项目配额,即检查接受该资源的用户所在项目是否有足够的项目配额来接受该转让,有则完成转让,并通过数据库将待转让资源所在项目id和用户id变更为受让用户所在项目id和受让用户id,并将资源状态重置为“可用”;无则返回配额不足的错误信息。
42.通过上述实施例,受让用户向服务器发送受让请求,服务器对受让请进行认证,来完成资源受让,实现了云平台环境中,资源的跨项目转让,操作简单、方便,安全性强。
43.在一些实施方式中,方法还包括:响应于所述资源状态为等待转让中并且接收到取消转让请求,其中,所述取消转让请求包含所述待转让资源的转让id;从数据库中查找所述转让id对应的转让记录;响应于找到所述转让记录,删除所述转让记录,并将所述资源状态置为可用。
44.在一些实施方式中,方法还包括:响应于未找到所述转让记录,则返回报错信息给所述转让用户。
45.下面通过具体的实施例对本发明的多个实施方式进行说明。
46.如果转让用户发起转让后,发现认证秘钥泄露或者不想转让了,亦或者其他原因想要取消资源的转让,那么转让用户可以在该资源完成受让之前,即资源仍处于“等待转让中”状态下,发起取消转让请求,如图4所示,为取消转让的流程示意图。取消转让请求包含转让id,转让用户向服务器发起取消转让请求,服务器在数据库查找对应转让id的记录,若是找到对应转让id的记录,则从数据库中删除该条记录,并将资源状态置为“可用”,若是未找到,则向转让用户返回未找到的报错信息。
47.取消转让后,对应的转让密钥会随之失效。如需继续转让,用户可再次发起转让,生成新的转让id和新的转让密钥,来确保转让信息的可靠性。
48.在一些实施方式中,生成待转让资源的转让id,包括:基于uuid4算法,生成随机uiid字符串,将所述字符串作为待转让资源的转让id。
49.在一些实施方式中,所述转让请求为转让rest请求,所述转让rest请求配置为将要传递的信息放入转让rest请求的请求体,并在得到返回信息后,将所述返回信息放入转让rest请求的返回体,以将所述返回信息返回所述转让用户,其中,所述要传递的信息包括所述转让描述以及所述资源id,所述返回信息包括将所述转让id、所述认证密钥、所述转让描述以及所述资源id。
50.通过本发明的实施例,实现了云平台环境中资源的跨项目转让,操作简单、方便,安全性强,提升了云平台项目间交互能力,满足用户间交互的需求,提升了云平台的易用性与便捷性。
51.基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种云平台资源跨项目转让系统,包括:
请求接收模块110,所述请求接收模块配置为接收转让请求,并基于转让请求生成待转让资源的槽位以及认证密钥,其中转让请求包含待转让资源的转让描述以及资源id;哈希运算模块120,所述哈希运算模块配置为对所述槽位与所述认证密钥进行哈希运算,以得到加密哈希认证字符串;构造模块130,所述构造模块配置为生成待转让资源的转让id并且基于所述资源id获取待转让资源所在项目id,并基于所述转让id、所述待转让资源所在项目id、所述槽位、所述认证密钥以及所述加密哈希认证字符串构造转让结构体,并将所述转让结构体写入数据库;生成记录模块140,所述生成记录模块配置为在所述数据库生成所述转让结构体的转让记录,并在所述转让记录中将所述待转让资源的资源状态置为等待转让中;请求返回模块150,所述请求返回模块配置为基于所述转让请求将所述转让id、所述认证密钥、所述转让描述以及所述资源id返回给转让用户。
52.在一些实施方式中,系统还包括:受让接收模块,受让接收模块配置为接收对待转让资源的受让请求,其中,受让请求包含所述转让id与所述认证密钥;获取模块,获取模块配置为基于所述转让id在数据库中获取对应的插槽以及加密哈希认证字符串;比较模块,比较模块配置为对所述对应的插槽以及受让请求中的所述认证密钥进行哈希计算,得到受让加密哈希认证字符串,并将所述受让加密哈希认证字符串与获取的所述加密哈希认证字符串进行比较,并基于比较结果判断是否认证成功;判断模块,判断模块配置为响应于认证成功,判断所述受让用户所在项目是否有容纳所述待转让资源的项目配额;转让模块,转让模块配置为响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额。
53.在一些实施方式中,转让模块还配置为:响应于所述受让用户所在项目无容纳所述待转让资源的项目配额,则返回错误信息给所述受让用户。
54.在一些实施方式中,响应于受让用户所在项目有容纳所述待转让资源的项目配额,将所述待转让资源转让到所述项目配额,还包括:通过数据库将所述待转让资源所在项目id以及用户id变更为受让用户所在项目id以及用户id,并将所述待转让资源的状态置为可用。
55.在一些实施方式中,系统还包括:响应于所述资源状态为等待转让中并且接收到取消转让请求,其中,所述取消转让请求包含所述待转让资源的转让id;从数据库中查找所述转让id对应的转让记录;响应于找到所述转让记录,删除所述转让记录,并将所述资源状态置为可用。
56.在一些实施方式中,系统还包括:响应于未找到所述转让记录,则返回报错信息给所述转让用户。
57.在一些实施方式中,生成待转让资源的转让id,包括:
基于uuid4算法,生成随机uiid字符串,将所述字符串作为待转让资源的转让id。
58.在一些实施方式中,所述转让请求为转让rest请求,所述转让rest请求配置为将要传递的信息放入转让rest请求的请求体,并在得到返回信息后,将所述返回信息放入转让rest请求的返回体,以将所述返回信息返回所述转让用户,其中,所述要传递的信息包括所述转让描述以及所述资源id,所述返回信息包括将所述转让id、所述认证密钥、所述转让描述以及所述资源id。
59.基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质30,计算机可读存储介质30存储有被处理器执行时执行如上方法的计算机程序310。
60.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
61.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
62.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
63.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
64.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
65.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
66.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1