使用Rest api管理Ceph网关
背景
开发基于Ceph RadosGW的微服务,需要实现调用方可以通过rest api就能创建用户,获取用户信息等功能。
实现
Ceph的RadosGW自身就有该功能,这些创建用户、获取用户信息、获取使用情况等的功能被称为Admin Operation(管理操作)。我们直接通过RadosGW的URL再加上/admin就可以访问执行管理操作了,比如RadosGW的URL为http://192.168.1.2:8080,那么管理操作的URL就是http://192.168.1.2:8080/admin。
管理操作的授权和S3的授权机制一样,只是创建S3用户之后,需要再给响应的用户附上管理权限。如下,我们会创建一个有管理权限的用户。
在Ceph集群中执行以下语句(当然,你可以换上你需要的用户名和key):
$ sudo radosgw-admin user create --uid="my_s3_user" --display-name="my_user_display_name" --access-key="my_admin_access_key" --secret-key="my_admin_secret_key"
$ sudo radosgw-admin --id admin caps add --caps="buckets=*;users=*;usage=*;metadata=*" --uid="my_s3_user"
如上,便创建了一个拥有管理权限的用户,接下来就可以使用官网提供的api(点击浏览)来使用了。
另外,如果不想直接使用Rest api,也可以使用一些封装好的第三方库。这里,介绍一个Java的第三方库(点击浏览),也正是我现在正使用的一个库。
以下的示例代码,创建了一个S3用户,获取了S3证书,并设置了配额。
private static void testRadosAdmin() {
String accessKey = "my_admin_access_key";
String secretKey = "my_admin_secret_key";
String adminEndpoint = "http://109.105.115.102:7480/admin";
RgwAdmin rgwAdmin = new RgwAdminBuilder().accessKey(accessKey).secretKey(secretKey).endpoint(adminEndpoint)
.build();
String userId = "8eeb3bb0-eda0-48f9-a18f-c04daecb5e69";
User user = null;
// create a user
user = rgwAdmin.createUser(userId);
if (user != null) {
// get user S3Credential
for (S3Credential credential : user.getS3Credentials()) {
System.out.println("userid: " + credential.getUserId() + ",getAccessKey: " + credential.getAccessKey()
+ ", getSecretKey: " + credential.getSecretKey());
}
// set user quota, such as maxObjects and maxSize(KB)
rgwAdmin.setUserQuota(userId, 1000, 1024 * 1024 * 5);
Optional<Quota> quota = rgwAdmin.getUserQuota(userId);
if (quota.isPresent()) {
System.out.println("quota KB: " + quota.get().getMaxSizeKb());
}
} else {
System.out.println("create user failed");
}
}
使用Rest api管理Ceph网关的更多相关文章
- Gravitational Teleport 开源的通过ssh && kubernetes api 管理linux 服务器集群的网关
Gravitational Teleport 是一个开源的通过ssh && kubernetes api 管理linux 服务器集群的网关 支持以下功能: 基于证书的身份认证 ssh ...
- 【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."
API 管理 (APIM) 是一种为现有后端服务创建一致且现代化的 API 网关的方法. 问题描述 在设置了APIM客户端证书,用户保护后端API,让请求更安全. 但是,最近发现使用客户端证书的API ...
- API 管理在云原生场景下的机遇与挑战
作者 | 张添翼 来源 | 尔达Erda公众号 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...
- API管理之利剑 -- Eolink
随着信息化飞速增长的还有各信息系统中的应用接口( API ),API 作为信息系统内部及不同信息系统之间进行数据传输的渠道,其数量随着软件系统的不断庞大而呈指数型增长,如何管理这些 API 已经在业界 ...
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
问题描述 使用微软API管理服务(Azure API Management),简称APIM. 因为公司策略要求只能内部网络访问,所以启用了VNET集成.集成方式见: (在内部模式下使用 Azure A ...
- FREE 开源 API 管理工具等
最近学习API 管理工具,发现几个不错的东西,记录如下: 1.IBM 收购NODE 厂家 STRONGLOOP 有一产品LOOPBACK,开源,好! 2.apigee api管理平台 也不错. 3 ...
- 论元数据和API管理工具
公司里面的很多部门都在广泛的采用元数据管理,也采用了公司内部开发的元数据管理工具,有些部门的实施效果一直非常好,而有些部门的效果则差强人意.这个问题,其实和软件系统开发完成进入维护阶段后成本居高不下的 ...
- API 管理工具
API 管理工具 你还苦于无法有效的管理大量的API吗?今天给大家介绍一款API的管理工具.这款工具可以免费使用,虽然中途可能会提示你购买,但并不影响我们的使用. 下载地址: Windows:http ...
- Api管理工具(spring-rest-docs)
对于app开发来说,必须需要有相应的api文档,一般最基础的就是用markdown工具来撰写api文档.当对于开发人员来说,是总会想着寻找更方便撰写,测试,对接前端开发的文档生成的工具. 其实这方面的 ...
随机推荐
- react 调用 function 的写法 及 解决 react onClick 方法自动执行
1.react 调用方法的写法 (1)方式一 onClick={this.getFetchData.bind(this,item.id)} (2)方式二 getFetchData(e){ this.s ...
- Tachyon源代码结构分析(二)
公布人:南京大学PASA大数据实验室顾荣 前言 在上一篇<Tachyon源代码结构分析(一)>中,我们介绍了Tachyon的四大模块(Client模块.Master模块.Worker模块以 ...
- VueJS标签消息显示HTML:v-html
HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl ...
- Android学习系列(二)布局管理器之线性布局的3种实现方式
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包括的子控件 ...
- HTML5开发移动web应用—JQuery Mobile(1)
JQuery Mobile是一个简单易用的web移动app开发框架.使用它就像使用jQuery一样,引入必要的文件就可以. 最基础的jQuery Mobile文件的结构代码例如以下: <body ...
- Activiti实战
说实话,接触Activiti已经是3年前的事情,那时候组里想做一个流程自动化的application,并且记录用户点击.做单量等.第一次听说Activiti,感觉挺好奇的,遂看了下相关的文档跟同事的代 ...
- PythonCookBook笔记——迭代器与生成器
迭代器与生成器 迭代是Python最强大的功能之一,虽然看起来迭代只是处理序列中元素的一种方法,但不仅仅如此. 手动遍历迭代器 想遍历但不想使用for循环. 使用next()方法并在代码中捕获Stop ...
- linux中vi编辑器(转载)
三种模式相互切换 在命令终端输入vi进入vi编辑器. 命令模式:进入编辑器即进入命令模式, 输入模式:在命令模式下输入“i ”进入输入模式: 末行模式:按“:”进入末行模式: 在输入模式切换至末行模式 ...
- MSQL Webpage
Mars Nov 19, 2014
- RecyclerView的那点事儿
RecyclerView 控件简单介绍 ListView的升级版 LinearLayoutManager GridLayoutManager StaggeredGridLayoutManager 定制 ...