如何使用radosgw admin ops api?

Ceph对象存储与块存储选型实战:RGW vs RBD深度对比 对象存储和块存储是现代分布式存储的两大基础范式,其本质差异在于数据组织方式(离散对象 vs 连续块)、访问协议(HTTP RESTful vs 块设备驱动)及元数据管理模型(用户态分布式 vs 内核态强一致)。对象存储凭借水平扩展性、API友好性和海量小文件处理能力,成为AI数据湖、日志归档与Web应用的理想底座;块存储则依托低延迟随机IO和POSIX语义,支撑数据库、虚拟机等强事务场景。Ceph作为统一存储平台,通过RGW提供S3兼容对象接口,通过RBD暴露块设备能力,二者在真实生产中常共存协同。本文聚焦 阅读详情

概述

通过Radosgw的Admin ops api,可以执行radosgw-admin对应的很多管理操作。

创建管理用户

要通过Restful请求管理Radosgw,必须先创建一个管理账户,user自己制定,可以命名为admin,例如:

 

radosgw-admin user create --uid=admin --display-name=admin

 

此时admin还仅仅是普通的权限,需要通过--cap添加user的capabilities,例如:
radosgw-admin caps add --uid=admin --caps="users=read, write"
radosgw-admin caps add --uid=admin --caps="usage=read, write" 

GET USER INFO

Get user information. If no user is specified returns the list of all users along with suspension information.

caps: users=read

SYNTAX

GET /{admin}/user?format=json HTTP/1.1
Host: {fqdn}

 

比如上述的“GET USER INFO”的API,需要使用的{admin}用户有“users=read”的caps。

API示例

1. 创建user

$ cat usercreate.sh
#!/bin/bash
token = 5L65QDE4df8JJ8RM7**  ## USER_TOKEN
secret = Y9HPiBCwLDeSMSaiQhmPT2h7N**  ## USER_SECRET
query = $ 1
name = $ 2
echo $query, $name
query3 = "&uid="
query2 = admin / user
date = $( for  i  in  $(date  "+%H" ) ; do date  "+%a, %d %b %Y $(( 10#$i-8 )):%M:%S +0000"  ; done)
header = "PUT\n\n\n${date}\n/${query2}"
sig = $(echo  - en ${header} | openssl sha1  - hmac ${secret}  - binary | base64)
curl  - v  - H  "Date: ${date}"  - H  "Authorization: AWS ${token}:${sig}"  - L  - X PUT  "http://<ip>/${query2}?format=json${query3}${query}&display-name=${name}"  - H  "Host: <ip>"

 

2. 列出user info

$ cat userinfo.sh
#!/bin/bash
token = 5L65QDE4238JJ8**  ## USER_TOKEN
secret = Y9HPiBCwLDeSMSaiQhmPT2h**  ## USER_SECRET
query = $ 1
query3 = "&uid="
query2 = admin / user
date = $( for  i  in  $(date  "+%H" ) ; do date  "+%a, %d %b %Y $(( 10#$i-8 )):%M:%S +0000"  ; done)
header = "GET\n\n\n${date}\n/${query2}"
sig = $(echo  - en ${header} | openssl sha1  - hmac ${secret}  - binary | base64)
curl  - v  - H  "Date: ${date}"  - H  "Authorization: AWS ${token}:${sig}"  - L  - X GET  "http://<ip>/${query2}?format=json${query3}${query}"  - H  "Host: <ip>"

 

3. 删除user

$ cat userdelete.sh
#!/bin/bash
token = 5L65QDE4238JJ8**  ## USER_TOKEN
secret = Y9HPiBCwLDeSMSaiQhmPT2h7NgN**  ## USER_SECRET
query = $ 1
query3 = "&uid="
query2 = admin / user
date = $( for  i  in  $(date  "+%H" ) ; do date  "+%a, %d %b %Y $(( 10#$i-8 )):%M:%S +0000"  ; done)
header = "DELETE\n\n\n${date}\n/${query2}"
sig = $(echo  - en ${header} | openssl sha1  - hmac ${secret}  - binary | base64)
curl  - v  - H  "Date: ${date}"  - H  "Authorization: AWS ${token}:${sig}"  - L  - X DELETE  "http://<ip>/${query2}?format=json${query3}${query}"  - H  "Host: <ip>"

 

4. 获取usage info

$ cat usageinfo.sh
#!/bin/bash
token = 5L65QDE4238**  ## USER_TOKEN
secret = Y9HPiBCwLDeSMSaiQhm**  ## USER_SECRET
query = $ 1
query3 = "&uid="
query2 = admin / usage
date = $( for  i  in  $(date  "+%H" ) ; do date  "+%a, %d %b %Y $(( 10#$i-8 )):%M:%S +0000"  ; done)
header = "GET\n\n\n${date}\n/${query2}"
sig = $(echo  - en ${header} | openssl sha1  - hmac ${secret}  - binary | base64)
curl  - v  - H  "Date: ${date}"  - H  "Authorization: AWS ${token}:${sig}"  - L  - X GET  "http://<ip>/${query2}?format=json${query3}${query}"  - H  "Host: <ip>"

 

RadosGW Admin ops API还有很多其他的APIs,详情见:http://docs.ceph.com/docs/master/radosgw/adminops/

问题记录

1. AccessDenied

脚本报错:< HTTP/1.1 403 Forbidden … {"Code":"AccessDenied"}
radosgw的log里报错:rgw/ rgw_auth_s3.cc:188 NOTICE: failed to parse date for auth header
从上述log中看出是请求header中的date解析不出来,修改脚本中date如下:
date=$(for i in $(date "+%H") ; do date "+%a, %d %b %Y $(( 10#$i-2 )):%M:%S +0000" ; done)

2. RequestTimeTooSkewed

脚本报错:< HTTP/1.1 403 Forbidden … {"Code":"RequestTimeTooSkewed"}
radosgw的log里报错:rgw/ rgw_rest_s3.cc:2398 NOTICE: request time skew too big now=2016-08-29 15:09:40.000000 req_time=2016-08-29 21:09:40.000000
从上述log中看出是request的time跟服务器时间差别较大,修改脚本中date如下:
date=$(for i in $(date "+%H") ; do date "+%a, %d %b %Y $(( 10#$i-8 )):%M:%S +0000" ; done)

3. 权限问题

参考具体命令的caps需求,添加user的caps

参考资料

【深度学习框架学习| Keras Ops API详解】Keras最简单的深度学习框架!你对基于Keras的 Ops API了解多少?来看看吧 阅读详情

相关推荐

CEPH radosgw-admin命令大全

user create create a new user user modify modify user user info get user info user rm remove user user suspend s...

weixin_38210643的博客 2305

java时间类型查询报错,【Elasticsearch】ES中时间查询报错:Caused by: ElasticsearchParseException[failed to parse date fi...

我真的很崩溃,先是workspace崩了,费了好久重建的workspace,然后建立了一个小demo项目,tomcat中启动却报错,挑选其中比较重要的2条信息如下: A child container failed during start 严重: Error starting static Resources java.lang.IllegalArgumentException: Documen...

weixin_39630106的博客 1203

radosgw-admin4j:一个用于 Java 的 Ceph 对象存储管理 SDK 客户端库 :sparkles::shortcake::sparkles:

关于 radosgw-admin4j 是一个 Ceph 对象存储管理客户端,允许配置和控制 Ceph 对象存储部署。 功能包括用户/子用户管理、配额管理、使用报告、存储桶/对象管理等。 强调 在最新的 Ceph 版本中完全支持所有包括subuser 、 quota等。 一种更简单的管理 radosgw 的方法。 避免在使用 radosgw 管理 API 时遇到麻烦,尤其是文档有点混乱且与代码库不一致。 质量和兼容性 - 针对 Ceph LTS 版本的和测试(目前是 。) 贡献者友好 - 典型的贡献过程,没有奇怪的政策,欢迎所有贡献! 开始使用 添加依赖 您可以使用以下标识符从 Maven Central 获取 radosgw-admim4j: 配置 RgwAdmin RGW_ADMIN = new RgwAdminBuilder()

radosgw-admin命令的一些参数

radosgw-admin命令的详细参数包括:

xiaofengyixi的博客 1703

raw admin ops 使用总结

raw admin ops 使用总结

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

Ceph Object Gateway Admin api介绍

说明:Ceph rgw admin ops api 是为了通过rest方式对对象存储进行管理的接口,可以通过该接口管理和获取对象存储相关信息。 认证:与S3使用同样的认证方式。 版本:基于Ceph 10.2。 准备工作: 需要创建一个新的管理用户,授予用户权限: radosgw-admin caps add --uid=admin --c...

weixin_33795833的博客 739

避坑指南:PyCINRAD处理CINRAD雷达数据时遇到的5个典型报错及解决方案

本文针对使用PyCINRAD库处理CINRAD雷达基数据时常见的5个典型报错,提供了详细的解决方案。内容涵盖环境配置、数据读取、PPI可视化及性能优化等核心环节,重点解决了版本兼容性、数据异常处理和中文乱码等实际问题,帮助用户高效处理雷达基数据并生成准确的PPI图像。

cc789的博客 1067

rgw用户中的caps

可以用以下命令为用户添加所有的caps,拥有对应的cap的用户可以操作不仅限与属于用户自己的桶和对象和其他用户,可以看作拥有管理员的某种权限 radosgw-admin caps add --uid=admin --caps="users=*;buckets=*;metadata=*;us...

chupiti2317的博客 1154

遗传算法详解 附python代码实现

遗传算法 遗传算法是用于解决最优化问题的一种搜索算法。从名字来看,遗传算法借用了生物学里达尔文的进化理论:”适者生存,不适者淘汰“,将该理论以算法的形式表现出来就是遗传算法的过程。 问题引入 上面提到遗传算法是用来解决最优化问题的,下面我将以求二元函数: def F(x, y): return 3*(1-x)**2*np.exp(-(x**2)-(y+1)**2)- 10*(x/5 - x**3......

ha_ha_ha233的博客 22万+

YOLOv8 ultralytics使用笔记----labelme标记数据,训练模型、追踪目标。

Ultralytics是一个Python库,它是为执行高级计算机视觉任务而创建的,如对象检测、实例分割、图像分类等。Ultralytics为YOLO模型发布了一个全新的存储库,它被构建为用于机器视觉统一框架。这里先利用,并激活。

qq_48050838的博客 1万+

ceph对象存储的配置与S3、swift接口的使用

首先简单了解一下一些ceph对象存储的基本知识: Ceph: 起始于2006年 开发语言:C 强一致性 块存储 对象存储 Swift: 起始于2008年 开发语言:Python 最终一致性 对象存储 真正的大型公用云服务产品中使用 对象存储介绍: Ceph本质上就是一个rados,利用命令rados就可以访问和使用ceph的对象存储...

CloudXli的博客 1万+

狗都能看懂的MAML原理讲解和代码实现

meta-leaning指的是元学习,元学习是深度学习的一个分支,一个好的元模型(meta-learner)应该具备对新的、少量的数据做出快速而准确的学习。通俗的来讲, 对于人来说,给几张橘猫的图片让看一下,再给你几张没见过的英短猫图片,你一定能很快识别出来都是猫。但是对于神经网络来说,并非如此。如果让一个小汽车分类网络去识别不同的大货车,那效果肯定很差。而传统的CNN网络都是输入大量的数据,然后进行分类的学习。但是这样做的问题就是,神经网络的通用性太差了,根本达不到“智能”的标准。而人类的认知系统,可以通

个人学习笔记 6万+

【Ceph RGW】radosgw_usage_exporter监控用户使用量

文章目录1 Overview2 radosgw_usage_exporter2.1 usage2.2 bucket3 关于权限4 metrics 1 Overview Ceph Mgr Prometheus 的模块没有提供用户数据使用量的指标,而在 Ceph 日常运维中,我们希望知道哪个用户用了多少存储容量,或者距离 Quota 还有多少,方便自动化扩容等等,所以推荐一个开源的 prometheus exeporter 来通过 radosgw 来输出用户在 Ceph 集群使用的量。 再次明确一下,这个 us

runzhliu大数据/容器日记 1604

本地玩转AI还得靠这个,SillyTavern(酒馆)到底有多强?

SillyTavern是一款本地运行的LLM交互前端,支持文本生成、图像生成、语音合成等功能。它最初是TavernAI的分支,现已独立开发,社区活跃,功能更新频繁。SillyTavern通过前端UI和插件系统连接各种大模型后端,如OpenAI、KoboldAI等,用户可以在本地创建“虚拟酒馆”与各种角色对话。其功能亮点包括角色卡、角色记忆、世界设定、多人聊天室、自定义UI和行为脚本、插件扩展支持等。SillyTavern适合AI创作用户、AI工程师、LLM爱好者和AIGC创作者。它有两个维护分支:relea

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 8031

Ros入门 (十)----激光雷达避障 简易实现

本篇文章通过订阅/scan话题获取障碍物的距离信息,达到避障目的,提供部分代码,仅供参考。

weixin_51157015的博客 1万+

Ceph Object Gateway Admin api 获取用户列表问题

按照官方文档使用Admin Ops API 获取用户列表 GET /admin/user时 返回{code: 403, message: Forbidden}这里有两个问题:首先用户列表的请求为 如下方式 : GET /admin/metadata/user其次 需要配置管理用户的metadata的读取权限: radosgw-admin caps add --uid=admin ...

456

【数字IC基础】DFT(Design For Test)可测性设计

【数字IC基础】DFT(Design For Test)可测性设计

努力,加油每一天鸭~ 3463

将 Ceph 扩展到十亿个对象甚至更多

因此,对于大于 bluestore_min_alloc_size_hdd 的对象,默认值似乎是最佳的,如果您打算减少 bluestore_min_alloc_size_hdd 参数,较小的对象还需要更多调查。当我们的集群中的存储容量用完时,我们别无选择,只能删除存储在桶中的旧大对象,而我们有数百万个这样的对象。我们最初是从 S3 API 的 DELETE 方法开始的,但我们很快意识到它不适用于存储桶删除,因为必须先删除存储桶中的所有对象,然后才能删除存储桶本身。这证明了 Ceph 集群的可扩展性和健壮性。

小Eason哥 689

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

对象存储vs块存储:Ceph实战中的数据契约与选型决策

对象存储和块存储是现代分布式存储的两大基础范式,其本质差异在于数据组织逻辑——前者基于HTTP协议的键值扁平命名空间,后者依托内核驱动的线性地址空间映射。理解这一根本区别,是规避Ceph集群PG异常、Rook部署失败、OpenStack Cinder挂载卡顿等高频问题的前提。技术价值体现在:对象存储天然适配Web前端、海量非结构化数据与跨云统一接口;块存储则保障数据库低延迟、虚拟机热迁移与AI训练高吞吐等强一致性场景。本文结合Ceph RGW与RBD在真实产线中的协同实践,解析从CORS跨域报错到rbd m

weixin_30832143的博客 550

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ceph radosgw-admin的操作

常用操作: 生成一新用户: 在两个集群当中都创建相同的管理用户 radosgw-admin user create --uid=admin --display-name=admin --access_key=admin --secret=123456 这里为了测试方便使用了简单密码 此时admin还仅仅是普通的权限,需要通过cap添加user的c...

dlm520947的博客 2556

数据库Access denied失败解决方法

今天在安装一个mysql时,碰到了一系列问题,现将这些问题罗列出来: (1)ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO) (2)ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password:yes) (3)ERROR 2003 (HY000): Can’t connect to MySQL ser

qq_43676724的博客 2万+

Spring Security中遇到的问题 org. . .AccessDeniedException:Access is denied

直接上图 这是在整合SSM案例中使用Spring Security遇到的问题,一直没有解决,但是程序依然能够正常运行 附上练习案例https://github.com/YellowDii/J2EE-SSM 记录下来。 ...

m0_37648645的博客 1799

python调用Ceph RGW Admin API

Admin API 的相关介绍见官网:http://docs.ceph.com/docs/master/radosgw/admin/github上有一个使用Python写的按照官网API请求格式封装了HTTP请求的库,我们可以直接调用该Python库提供的接口,就可以完成Admin API的相关操作:https://github.com/UMIACS/rgwadminexample:API Exa...

redenval的专栏 2121

Hands-on Lab (9) - 增加用户

用admin登录,然后执行命令,获取Identity Providers的Htpasswd的Name(下面中的htpass-secret) $ oc describe oauth cluster Name: cluster Namespace: Labels: <none> Annotations: kubectl.kubernetes.io/...

多恩斯基的博客 2082

使用ceph-deploy 2.0.0 部署ceph 12.2.5集群

1. 环境 1.1 硬件 4台 Linux虚拟机: server0, server1, server2, server3 每台有两块磁盘 : /dev/vdb, /dev/vdc 每台有两块网卡 :eth0, ens9 1.2 软件 linux版本: CentOS 7.2.1511 内核版本 : 3.10.0-327.el7.x86_64 ceph版本: 12.2.5...

for_tech的博客 1万+
上一篇: pytho脚本通过boto3访问radosgw提供的对象存储
下一篇: Ceph RGW远程同步(multisite)配置
for_tech
博客等级 码龄11年 50粉丝 37原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值