searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

基于python3访问rados object对象方法介绍

2024-09-29 09:55:09
4
0

python3是一个常用的编码工具,集成了多种库,功能强大且语法简单。本文简单介绍一种基于rados库遍历访问object对象属性信息的方法。

第一步:通过import引用rados库:

import rados

第二步:连接rados集群,通过制定conffile,keyring,rados_id实现基于特定用户的访问

cluster = rados.Rados(conffile=ceph_conf_file,conf=dict(keyring=key_file), rados_id=user_name)
cluster.connect()

第三步:获取pool对象的上下文句柄,通过cluster.open_ioctx打开特定pool对象:

# 检查pool是否存在,如果不存在则先创建
pool_name = 'test_pool'
if pool_name not in cluster.list_pools():
    cluster.make_pool(pool_name)

# 获取池对象
pool_ioctx = cluster.open_ioctx(pool_name)

第四步:创建一个object对象,通过写入object内容,若不存在该object则会创建

# 写入object对象,若不存在该object,则会创建
object_name = 'test_object'
data = b'init.'
pool_ioctx.write(object_name, data)

第五步:设置object对象属性信息:

xattr= 'date'
xattr_value = b'Fri Sep 27 16:25:14 CST 2024'
pool_ioctx.set_xattr(object_name, xattr, xattr_value)

第六步:读取object对象的属性信息:

xattr_value = pool_ioctx.get_xattr(object_name, xattr)

如果需要遍历读取object对象的多个属性信息,则可以通过get_xattrs方法获得,通过一个字典对象保存所有属性的名称及属性值:

obj_xattrs = dict()
xattr_iter = pool_ioctx.get_xattrs(object_name)
while True:
    xattr = xattr_iter.__next__()
    obj_xattrs[xattr[0]] = xattr[1]

第七步:删除object对象:

pool_ioctx.remove(object_name)

第八步:关闭pool及集群连接:

pool_ioctx.close()
cluster.shutdown()
0条评论
0 / 1000
l****n
5文章数
0粉丝数
l****n
5 文章 | 0 粉丝
原创

基于python3访问rados object对象方法介绍

2024-09-29 09:55:09
4
0

python3是一个常用的编码工具,集成了多种库,功能强大且语法简单。本文简单介绍一种基于rados库遍历访问object对象属性信息的方法。

第一步:通过import引用rados库:

import rados

第二步:连接rados集群,通过制定conffile,keyring,rados_id实现基于特定用户的访问

cluster = rados.Rados(conffile=ceph_conf_file,conf=dict(keyring=key_file), rados_id=user_name)
cluster.connect()

第三步:获取pool对象的上下文句柄,通过cluster.open_ioctx打开特定pool对象:

# 检查pool是否存在,如果不存在则先创建
pool_name = 'test_pool'
if pool_name not in cluster.list_pools():
    cluster.make_pool(pool_name)

# 获取池对象
pool_ioctx = cluster.open_ioctx(pool_name)

第四步:创建一个object对象,通过写入object内容,若不存在该object则会创建

# 写入object对象,若不存在该object,则会创建
object_name = 'test_object'
data = b'init.'
pool_ioctx.write(object_name, data)

第五步:设置object对象属性信息:

xattr= 'date'
xattr_value = b'Fri Sep 27 16:25:14 CST 2024'
pool_ioctx.set_xattr(object_name, xattr, xattr_value)

第六步:读取object对象的属性信息:

xattr_value = pool_ioctx.get_xattr(object_name, xattr)

如果需要遍历读取object对象的多个属性信息,则可以通过get_xattrs方法获得,通过一个字典对象保存所有属性的名称及属性值:

obj_xattrs = dict()
xattr_iter = pool_ioctx.get_xattrs(object_name)
while True:
    xattr = xattr_iter.__next__()
    obj_xattrs[xattr[0]] = xattr[1]

第七步:删除object对象:

pool_ioctx.remove(object_name)

第八步:关闭pool及集群连接:

pool_ioctx.close()
cluster.shutdown()
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0