Board logo

标题: 使用ceph的对象存储(4) [打印本页]

作者: look_w    时间: 2019-5-18 10:33     标题: 使用ceph的对象存储(4)

测试访问 S3 接口

参照官方文档,我们需要编写一个 Python 测试脚本,该脚本将会连接 radosgw,然后新建一个新的 bucket 再列出所有的 buckets。脚本变量 aws_access_key_id 和 aws_secret_access_key 的值就是上边返回值中的 access_key 和 secret_key。

首先,我们需要安装 python-boto 包,用于测试连接 S3。

sudo yum install python-boto



然后,编写 python 测试脚本。

vi s3.py



输入如下内容:

import boto
import boto.s3.connection
access_key = 'ZN23EX4KO0GHN2O5E5F9'
secret_key = 'OJRYntMXZv3u5xDZK8aPyAlLaChIxdvma9WPX9FO'
conn = boto.connect_s3(
    aws_access_key_id = access_key,
    aws_secret_access_key = secret_key,
    host = 'admin', port=7480,
    is_secure=False,
    calling_format = boto.s3.connection.OrdinaryCallingFormat(),
)
bucket = conn.create_bucket('my-first-s3-bucket')
for bucket in conn.get_all_buckets():
        print "{name}\t{created}".format(
                name = bucket.name,
                created = bucket.creation_date,
)


注意:这里使用了python-boto 包,使用认证信息连接 S3,然后创建了一个 my-first-s3-bucket 的 bucket,最后列出所有已创建的 bucket,打印名称和创建时间。

最后,执行脚本,看下结果是否正确。

[zzq@localhost ~]$ python s3.py
my-first-s3-bucket  2018-05-31T15:09:02.000Z
[zzq@localhost ~]$



测试通过。
删除S3用户

radosgw-admin  user rm --uid=rgwuser


权限调整

允许rgwuser读写users信息:

radosgw-admin caps add --uid=rgwuser --caps="users=*"



允许admin读写所有的usage信息:

radosgw-admin caps add --uid=rgwuser --caps="usage=read,write"


创建 Swift 用户

要通过 Swift 访问对象网关,需要 Swift 用户,我们创建subuser作为子用户。
使用命令

sudo radosgw-admin subuser create --uid=rgwuser --subuser=rgwuser:swift --access=full
#创建密钥
sudo radosgw-admin key create --subuser=rgwuser:swift --key-type=swift --gen-secret



输出如下:

{
    "user_id": "rgwuser",
    "display_name": "This is first rgw test user",
    "email": "",
    "suspended": 0,
    "max_buckets": 1000,
    "auid": 0,
    "subusers": [
        {
            "id": "rgwuser:swift",
            "permissions": "full-control"
        }
    ],
    "keys": [
        {
            "user": "rgwuser:swift",
            "access_key": "DPLAX7KKAFTICHGIEQU4",
            "secret_key": ""
        },
        {
            "user": "rgwuser",
            "access_key": "ZN23EX4KO0GHN2O5E5F9",
            "secret_key": "OJRYntMXZv3u5xDZK8aPyAlLaChIxdvma9WPX9FO"
        }
    ],
    "swift_keys": [
        {
            "user": "rgwuser:swift",
            "secret_key": "ja3mxJTGD7tvFsK1tVL8qScWPp2Wn657Jo4h4vLv"
        }
    ],
    "caps": [],
    "op_mask": "read, write, delete",
    "default_placement": "",
    "placement_tags": [],
    "bucket_quota": {
        "enabled": false,
        "max_size_kb": -1,
        "max_objects": -1
    },
    "user_quota": {
        "enabled": false,
        "max_size_kb": -1,
        "max_objects": -1
    },
    "temp_url_keys": []
}


注意:返回的 Json 值中,我们要记住swift_keys中的secret_key 因为下边我们测试访问 Swift 接口时需要使用。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0