测试访问 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 接口时需要使用。 |