测试使用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.jar
sudo 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.jar
sudo 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,rbd
cluster = 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 = path
f = 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 :
break
ioctx.close()
cluster.shutdown()
使用python S3API存数据
import boto
import boto.s3.connection
from boto.s3.key import Key
access_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)