温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何采用libs3进行简单的ceph radosgw测试和使用

发布时间:2021-11-10 17:58:24 来源:亿速云 阅读:204 作者:柒染 栏目:云计算

这篇文章给大家介绍如何采用libs3进行简单的ceph radosgw测试和使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1.引言

一般情况下推荐使用s3cmd工具进行ceph对象存储的体验与测试,但是我需要提供C/C++的sdk包,所以将注意力集中在了libs3上,并采用libs3的命令进行测试,效果与s3cmd类似。命令参数稍有不同。欲深入理解请阅读源码,本文作入门级使用说明。

2. 编译安装

2.1 源码下载

github libs3源码下载路径

请采用git clone的方式从服务器下载源码。

2.2 源码编译安装

源码下载后目录如下:

# 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.*.*.*"

3.使用

对象存储主要有如下几个关键操作: 罗列用户所有的bucket
罗列某个bucket下的对象
创建bucket
删除bucket 向某个bucket中上传对象 删除bucket中的某个对象 下载某个bucket中的对象

下面针对这些操作进行一一说明:

3.1 罗列当前用户下的所有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

3.2 罗列bucket下的对象信息

# 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

3.3 创建bucket

# 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被成功创建。

3.4 删除bucket

# 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已不存在

3.5 向指定BUCKET中上传文件

# 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) ...

3.6 删除BUCKET中某个对象

# 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

3.7 下载BUCKET中某个对象

本例子从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测试和使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI