【Python】Ceph的python接

发布时间:2019-09-15 10:08:40编辑:auto阅读(2067)

    参考文章


    连接ceph集群

    import rados
    
    cluster = rados.Rados(conffile='/etc/ceph/ceph.conf')
    cluster.connect()

    创建与删除池

    # 列出可用的池
    pools = cluster.list_pools()
    for pool in pools:
        print pool
    
    # 创建池test
    cluster.create_pool('test')
    
    # 删除池
    cluster.delete_pool('test')
    
    # 判断是否存在一个池
    cluster.pool_exists('test')

    列出池中所有的文件名

    ioctx = cluster.open_ioctx('test')
    
    # 列出test池中的所有文件名
    object_iterator = ioctx.list_objects()
    while True :
        try :
            rados_object = object_iterator.next()
            print "Object contents = " + rados_object.key
        except StopIteration :
            break
    
    ioctx.close()

    上传文件

    # 连接到test池
    ioctx = cluster.open_ioctx('test')
    
    file_name = "yy.mp3"
    f = open("yy.mp3", "r")
    file_content = f.read()
    f.close()
    
    # 将文件写入池
    ioctx.write_full(file_name, file_content)
    
    ioctx.close()

    下载文件

    # 连接到test池
    ioctx = cluster.open_ioctx('test')
    
    f = open("yy.mp3", "w")
    
    # 将文件下载(写入)到本地
    f.write(ioctx.read("yy.mp3"))
    
    f.close()
    
    ioctx.close()

    删除文件

    ioctx = cluster.open_ioctx('test')
    
    # 删除test池中的yy.mp3文件
    ioctx.remove_object("yy.mp3")
    
    ioctx.close()

    断开ceph集群连接

    cluster.shutdown()

关键字