测试使用Java-librados库往进存东西

如果是在Linux里,复制该JAR文件到公共目录 (例如 /usr/share/java) ,设置这两个 JAR 链接 JVM Class path,连接操作如下:

  1. sudo cp target/rados-0.6.0.jar /usr/share/java/rados-0.6.0.jar
  2. 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
  3. 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里当前存储的所有文件名,为方便也可以修改代码列出数量。

  1. import sys,rados,rbd
  2. cluster = rados.Rados(conffile='/etc/ceph/ceph.conf')
  3. cluster.connect()
  4. ioctx = cluster.open_ioctx('data')
  5. for i in range(150):
  6. path = str(i) + '.jpg'
  7. file_name = path
  8. f = open(path, "r")
  9. file_content = f.read()
  10. f.close()
  11. ioctx.write_full(file_name, file_content)
  12. object_iterator = ioctx.list_objects()
  13. while True :
  14. try :
  15. rados_object = object_iterator.next()
  16. print ("Object contents = " + rados_object.key)
  17. except StopIteration :
  18. break
  19. ioctx.close()
  20. cluster.shutdown()

使用python S3API存数据

测试ceph - 图1

  1. import boto
  2. import boto.s3.connection
  3. from boto.s3.key import Key
  4. access_key = 'S2WEB1BIYXW35EX1YANG'
  5. secret_key = 'bgp5OvRJ640LJ46x5m6UANoEMQ5WSyImou8AFJPv'
  6. conn = boto.connect_s3(
  7. aws_access_key_id = access_key,
  8. aws_secret_access_key = secret_key,
  9. host = 'ceph', port = 7480,
  10. is_secure=False, calling_format = boto.s3.connection.OrdinaryCallingFormat(),
  11. )
  12. bucket = conn.get_bucket('lt1_bucket')
  13. k = Key(bucket)
  14. k.key = 'test_file'
  15. filename = '004.jpg'
  16. k.set_contents_from_filename(filename)