千家信息网

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

发表于:2024-11-15 作者:千家信息网编辑
千家信息网最后更新 2024年11月15日,这篇文章给大家介绍如何采用libs3进行简单的ceph radosgw测试和使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.引言一般情况下推荐使用s3cmd工具进行ceph
千家信息网最后更新 2024年11月15日如何采用libs3进行简单的ceph radosgw测试和使用

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

1.引言

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

2. 编译安装

2.1 源码下载

github libs3源码下载路径

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

2.2 源码编译安装

源码下载后目录如下:

# ll -htotal 136Kdrwxr-xr-x 2 root root 4.0K Jan  8 13:59 archlinuxdrwxr-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 COPYINGdrwxr-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.osxdrwxr-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 LICENSEdrwxr-xr-x 2 root root 4.0K Jan  8 13:59 mswin-rw-r--r-- 1 root root  126 Jan  5 14:57 READMEdrwxr-xr-x 2 root root 4.0K Feb 19 11:10 srcdrwxr-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:04Zmytest                                                    2016-03-18T01:24:53Znew_bucket1                                               2016-03-15T05:05:35Zrd_test_bucket_fifty_mb                                   2016-03-17T22:56:56Zwr_new_test_bucket_fifty                                  2016-03-18T01:10:00Zwr_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   3496ADBlockSetup.zip                                    2016-03-17T18:21:04Z  4.55MZoneData                                            2016-03-17T23:20:51Z   564Meclipse-java-mars-R-win32-x86_64.zip                2016-03-18T00:23:25Z   163Mnginx-1.6.3.tar.gz                                  2016-03-17T23:17:24Z   786Kvirtual machine.big.rar                             2016-03-18T01:12:36Z  3.86Gvirtual machine.rar                                 2016-03-18T00:31:29Z  1.93G

3.3 创建bucket

# s3 -u create xuwenqiangBucket successfully created.# s3 -u list                         Bucket                                 Created       --------------------------------------------------------  --------------------wr_test_bucket_fifty_mb                                   2016-03-18T00:30:38Zwrite_test_bucket1                                        2016-03-20T18:23:53Zxuwenqiang                                                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:00Zwr_test_bucket_fifty_mb                                   2016-03-18T00:30:38Zwrite_test_bucket1                                        2016-03-20T18:23:53Z

通过命令可以发现BUCKET xuwenqiang已不存在

3.5 向指定BUCKET中上传文件

# s3 -u put new_bucket1/newkey1 filename=CephS3.o111392 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.00G10                                                  2016-03-20T18:29:10Z    50M11                                                  2016-03-20T18:29:28Z    50M12                                                  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    50M11                                                  2016-03-20T18:29:28Z    50M12                                                  2016-03-20T18:29:31Z    50M13                                                  2016-03-20T18:29:28Z    50M14                                                  2016-03-20T18:29:29Z    50M15                                                  2016-03-20T18:29:30Z    50M16                                                  2016-03-20T18:29:30Z    50M

3.7 下载BUCKET中某个对象

本例子从BUCKET new_bucket1中下载ID为10的文件到本地,命名为currenttest

# s3 -u get new_bucket1/10 filename=currenttest
# ll -htotal 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测试和使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

对象 命令 源码 文件 测试 编译 源码下载 信息 内容 参数 接口 更多 用户 存储 帮助 不同 不错 成功 使用说明 例子 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库池已申请0个连接 高密市易搜网络技术有限公司 民法法典网络安全内容 网络安全技术服务外包 口袋精灵连接不了服务器怎么办 应用软件开发的基本原则 深圳市重构网络技术有限公司 网络技术中的p2p 校园网站软件开发需求文档例 一台电脑上能装几个数据库 宁波数字交易所软件开发 在任天堂上怎么连接服务器 长乐财务软件开发价格 计算机四级网络技术教材 软件开发类swot分析 计算机网络安全 马利答案 网络安全技术与应用期刊如何 服务器如何保存大量视频 进行某数据库的设计和实现 智能交通网络安全 发展现状 铜陵崖圃网络技术有限公司 直播平台软件开发定制公司 简历计算机网络技术职业类别 数据库给应用提供服务器 tp5数据库增加语句 怎么看数据库的字段 国家电信网络安全宣传 软件开发聘任书打印 nod32怎么设置更新服务器 查看数据库表单里面的数据
0