测试使用Java-librados库往进存东西
如果是在Linux里,复制该JAR文件到公共目录 (例如 /usr/share/java) ,设置这两个 JAR 链接 JVM Class path,连接操作如下:
sudo cp target/rados-0.6.0.jar /usr/share/java/rados-0.6.0.jarsudo ln -s /usr/share/java/jna.jar /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/lib/ext/jna.jarsudo ln -s /usr/share/java/rados-0.6.0.jar /usr/lib/jvm/default-java/jre/lib/ext/rados-0.6.0.jar
测试使用python-librados库往进存东西
代码功能是:从某一路径读取图片,上传到ceph集群,然后列出这个pool里当前存储的所有文件名,为方便也可以修改代码列出数量。
import sys,rados,rbdcluster = rados.Rados(conffile='/etc/ceph/ceph.conf')cluster.connect()ioctx = cluster.open_ioctx('data')for i in range(150):path = str(i) + '.jpg'file_name = pathf = open(path, "r")file_content = f.read()f.close()ioctx.write_full(file_name, file_content)object_iterator = ioctx.list_objects()while True :try :rados_object = object_iterator.next()print ("Object contents = " + rados_object.key)except StopIteration :breakioctx.close()cluster.shutdown()
使用python S3API存数据

import botoimport boto.s3.connectionfrom boto.s3.key import Keyaccess_key = 'S2WEB1BIYXW35EX1YANG'secret_key = 'bgp5OvRJ640LJ46x5m6UANoEMQ5WSyImou8AFJPv'conn = boto.connect_s3(aws_access_key_id = access_key,aws_secret_access_key = secret_key,host = 'ceph', port = 7480,is_secure=False, calling_format = boto.s3.connection.OrdinaryCallingFormat(),)bucket = conn.get_bucket('lt1_bucket')k = Key(bucket)k.key = 'test_file'filename = '004.jpg'k.set_contents_from_filename(filename)
