这篇文章给大家介绍如何采用libs3进行简单的ceph radosgw测试和使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一般情况下推荐使用s3cmd工具进行ceph对象存储的体验与测试,但是我需要提供C/C++的sdk包,所以将注意力集中在了libs3上,并采用libs3的命令进行测试,效果与s3cmd类似。命令参数稍有不同。欲深入理解请阅读源码,本文作入门级使用说明。
github libs3源码下载路径
请采用git clone的方式从服务器下载源码。
源码下载后目录如下:
# ll -h
total 136K
drwxr-xr-x 2 root root 4.0K Jan 8 13:59 archlinux
drwxr-xr-x 7 root root 4.0K Jan 8 13:59 build
-rw-r--r-- 1 root root 653 Jan 5 14:57 ChangeLog
-rw-r--r-- 1 root root 7.5K Jan 5 14:57 COPYING
drwxr-xr-x 2 root root 4.0K Jan 8 13:59 debian
-rw-r--r-- 1 root root 35K Jan 5 14:57 doxyfile
-rw-r--r-- 1 root root 14K Jan 5 14:57 GNUmakefile
-rw-r--r-- 1 root root 9.7K Jan 5 14:57 GNUmakefile.mingw
-rw-r--r-- 1 root root 9.9K Jan 5 14:57 GNUmakefile.osx
drwxr-xr-x 3 root root 4.0K Jan 8 13:59 inc
-rw-r--r-- 1 root root 2.4K Jan 5 14:57 INSTALL
-rw-r--r-- 1 root root 2.2K Jan 5 14:57 libs3.spec
-rw-r--r-- 1 root root 846 Jan 5 14:57 LICENSE
drwxr-xr-x 2 root root 4.0K Jan 8 13:59 mswin
-rw-r--r-- 1 root root 126 Jan 5 14:57 README
drwxr-xr-x 2 root root 4.0K Feb 19 11:10 src
drwxr-xr-x 2 root root 4.0K Jan 8 13:59 test
-rw-r--r-- 1 root root 3.0K Jan 5 14:57 TODO
简单说明: inc 头文件 src 实现文件 build 用于存放编译好的库、可执行文件
执行命令make install即可编译安装
# make install
/usr/bin/s3: Installing executable
/usr/lib/libs3.so.2.0: Installing shared library
/usr/lib/libs3.so.2: Linking shared library
/usr/lib/libs3.so: Linking shared library
/usr/lib/libs3.a: Installing static library
/usr/include/libs3.h: Installing header
这里要注意的是,在使用s3命令的时候,需要先设置参数:
export S3_ACCESS_KEY_ID="JD1**************TCI4"
export S3_SECRET_ACCESS_KEY="88sAejI*************F4oHTLnqD"
export S3_HOSTNAME="183.*.*.*"
对象存储主要有如下几个关键操作: 罗列用户所有的bucket
罗列某个bucket下的对象
创建bucket
删除bucket 向某个bucket中上传对象 删除bucket中的某个对象 下载某个bucket中的对象
下面针对这些操作进行一一说明:
# s3 -u list
Bucket Created
-------------------------------------------------------- --------------------
big_rd_test_bucket 2016-02-04T06:18:04Z
mytest 2016-03-18T01:24:53Z
new_bucket1 2016-03-15T05:05:35Z
rd_test_bucket_fifty_mb 2016-03-17T22:56:56Z
wr_new_test_bucket_fifty 2016-03-18T01:10:00Z
wr_test_bucket_fifty_mb 2016-03-18T00:30:38Z
# s3 -u list new_bucket1
Key Last Modified Size
-------------------------------------------------- -------------------- -----
16 2016-03-15T05:11:08Z 3496
ADBlockSetup.zip 2016-03-17T18:21:04Z 4.55M
ZoneData 2016-03-17T23:20:51Z 564M
eclipse-java-mars-R-win32-x86_64.zip 2016-03-18T00:23:25Z 163M
nginx-1.6.3.tar.gz 2016-03-17T23:17:24Z 786K
virtual machine.big.rar 2016-03-18T01:12:36Z 3.86G
virtual machine.rar 2016-03-18T00:31:29Z 1.93G
# s3 -u create xuwenqiang
Bucket successfully created.
# s3 -u list
Bucket Created
-------------------------------------------------------- --------------------
wr_test_bucket_fifty_mb 2016-03-18T00:30:38Z
write_test_bucket1 2016-03-20T18:23:53Z
xuwenqiang 2016-03-21T04:30:06Z
通过list命令可以发现,BUCKET xuwenqiang被成功创建。
# s3 -u delete xuwenqiang
# s3 -u list
Bucket Created
-------------------------------------------------------- --------------------
wr_new_test_bucket_fifty 2016-03-18T01:10:00Z
wr_test_bucket_fifty_mb 2016-03-18T00:30:38Z
write_test_bucket1 2016-03-20T18:23:53Z
通过命令可以发现BUCKET xuwenqiang已不存在
# s3 -u put new_bucket1/newkey1 filename=CephS3.o
111392 bytes remaining (12% complete) ...
95008 bytes remaining (25% complete) ...
78624 bytes remaining (38% complete) ...
62240 bytes remaining (51% complete) ...
45856 bytes remaining (64% complete) ...
29472 bytes remaining (76% complete) ...
13088 bytes remaining (89% complete) ...
# s3 -u list new_bucket1
Key Last Modified Size
-------------------------------------------------- -------------------- -----
1 2016-03-21T00:34:46Z 1.00G
10 2016-03-20T18:29:10Z 50M
11 2016-03-20T18:29:28Z 50M
12 2016-03-20T18:29:31Z 50M
# s3 -u delete write_new_bucket1/1
# s3 -u list new_bucket1
Key Last Modified Size
-------------------------------------------------- -------------------- -----
10 2016-03-20T18:29:10Z 50M
11 2016-03-20T18:29:28Z 50M
12 2016-03-20T18:29:31Z 50M
13 2016-03-20T18:29:28Z 50M
14 2016-03-20T18:29:29Z 50M
15 2016-03-20T18:29:30Z 50M
16 2016-03-20T18:29:30Z 50M
本例子从BUCKET new_bucket1中下载ID为10的文件到本地,命名为currenttest
# s3 -u get new_bucket1/10 filename=currenttest
# ll -h
total 3.8G
......
-rw-r--r-- 1 root root 19K Feb 6 16:42 CephS3Test-WS.cpp
-rw-r--r-- 1 root root 50M Mar 21 20:36 currenttest
......
#4 附录
使用前请设置环境变量
如果使用的http协议,请带上-u选项
我基于Libs3做了一个简易版的SDK,主要接口就是上述操作,不过将操作命令转换为接口即可。
关于如何采用libs3进行简单的ceph radosgw测试和使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/myspaceNUAA/blog/644751