注意
本文档适用于 Ceph 开发版本。
管理操作
管理API请求将在以可配置的“admin”资源入口点开头的URI上进行。管理API的授权机制与S3授权机制相同。某些操作需要用户具有特殊的管理能力。响应实体类型(XML或JSON)可以作为请求中的“format”选项指定,如果未指定,则默认为JSON。
Info
获取 RGW 集群/端点信息。
- 权能:
info=read
语法
GET /{admin}/info?format=json HTTP/1.1
Host: {fqdn}
请求参数
None.
响应实体
如果成功,响应包含info
部分。
info
- 描述:
一个包含所有返回信息的容器。
- 类型:
容器
cluster_id
- 描述:
控制 RGW 集群的(通常唯一的)后端存储标识符。在典型情况下,这是从 librados::rados::cluster_fsid() 返回的值。
- 类型:
字符串
- 父级:
info
特殊错误响应
None.
Get Usage
请求带宽使用信息。
注意:此功能默认禁用,可以通过在 ceph.conf 的适当部分设置来启用rgw
enable usage log = true
。为了使 ceph.conf 中的更改生效,需要重启 radosgw 进程。
- 权能:
usage=read
语法
GET /{admin}/usage?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
请求信息的用户。如果未指定,将适用于所有用户。
- 类型:
字符串
- 示例:
foo_user
- 必需:
否
start
- 描述:
指定请求数据的开始时间日期和(可选的)时间。
- 类型:
字符串
- 示例:
2012-09-25 16:00:00
- 必需:
否
end
- 描述:
指定请求数据结束的日期和(可选的)时间(不包含在内)。
- 类型:
字符串
- 示例:
2012-09-25 16:00:00
- 必需:
否
show-entries
- 描述:
指定是否应返回数据条目。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
show-summary
- 描述:
指定是否应返回数据摘要。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
响应实体
如果成功,响应包含请求的信息。
usage
- 描述:
一个包含使用信息的容器。
- 类型:
容器
entries
- 描述:
一个包含使用条目信息的容器。
- 类型:
容器
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
owner
- 描述:
拥有桶的用户的名称。
- 类型:
字符串
bucket
- 描述:
桶的名称。
- 类型:
字符串
time
- 描述:
指定数据下限的时间(四舍五入到第一个相关小时的开头)。
- 类型:
字符串
epoch
- 描述:
自 1970 年 1 月 1 日起指定的秒数。
- 类型:
字符串
categories
- 描述:
一个包含统计类别的容器。
- 类型:
容器
entry
- 描述:
一个包含统计条目的容器。
- 类型:
容器
category
- 描述:
请求类别名称,该统计信息为此提供。
- 类型:
字符串
bytes_sent
- 描述:
RADOS Gateway 发送的字节数。
- 类型:
整数
bytes_received
- 描述:
RADOS Gateway 接收的字节数。
- 类型:
整数
ops
- 描述:
操作数。
- 类型:
整数
successful_ops
- 描述:
成功的操作数。
- 类型:
整数
summary
- 描述:
一个包含统计摘要的容器。
- 类型:
容器
total
- 描述:
一个包含统计摘要聚合总和的容器。
- 类型:
容器
特殊错误响应
待定。
剪辑使用情况
删除使用信息。如果没有指定日期,则删除所有使用信息。
注意:此功能默认禁用,可以通过在 ceph.conf 的适当部分设置来启用rgw
enable usage log = true
。为了使 ceph.conf 中的更改生效,需要重启 radosgw 进程。
- 权能:
usage=write
语法
DELETE /{admin}/usage?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
请求信息的用户。如果未指定,将适用于所有用户。
- 类型:
字符串
- 示例:
foo_user
- 必需:
否
start
- 描述:
指定请求数据的开始时间日期和(可选的)时间。
- 类型:
字符串
- 示例:
2012-09-25 16:00:00
- 必需:
否
end
- 描述:
指定请求数据结束的日期和(可选的)时间(不包含在内)。
- 类型:
字符串
- 示例:
2012-09-25 16:00:00
- 必需:
否
remove-all
- 描述:
当未指定 uid 时,为了确认多用户数据删除而必需。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
特殊错误响应
待定。
获取用户信息
获取用户信息。Capusers
或user-info-without-keys
必须设置为read
运行此操作需要权限。user-info-without-keys
被设置为read
或*
,S3 密钥和 Swift 密钥将不会包含在响应中,除非运行此操作的 用户是系统用户、管理员用户或必须作为请求参数提供 capusers
被设置为read
.
任何uid
或access-key
。我们建议提供 uid。uid
信息。
- 权能:
users=read 或 user-info-without-keys=read
语法
GET /{admin}/user?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
请求信息的用户。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
access-key
- 描述:
请求信息的用户的 S3 访问密钥。
- 类型:
字符串
- 示例:
ABCD0EF12GHIJ2K34LMN
- 必需:
否
响应实体
如果成功,响应包含用户信息。
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
user_id
- 描述:
用户 ID。
- 类型:
字符串
- 父级:
user
display_name
- 描述:
用户的显示名称。
- 类型:
字符串
- 父级:
user
suspended
- 描述:
如果用户被暂停,则为 True。
- 类型:
布尔值
- 父级:
user
max_buckets
- 描述:
用户可以拥有的最大桶数。
- 类型:
整数
- 父级:
user
subusers
- 描述:
与此用户帐户关联的子用户。
- 类型:
容器
- 父级:
user
keys
- 描述:
与此用户帐户关联的 S3 密钥。
- 类型:
容器
- 父级:
user
swift_keys
- 描述:
与此用户帐户关联的 Swift 密钥。
- 类型:
容器
- 父级:
user
caps
- 描述:
用户权限。
- 类型:
容器
- 父级:
user
特殊错误响应
None.
创建用户
创建一个新用户。默认情况下,将自动创建一对 S3 密钥并返回在响应中。如果只提供access-key
或secret-key
中的一个,则省略的密钥将自动生成。默认情况下,生成的密钥会添加到密钥环中,而不会替换现有的密钥对。access-key
指定并且是指定用户拥有的现有密钥,则它将被修改。
Luminous 版本新增。
A tenant
可以作为 uid 的一部分指定,也可以作为附加请求参数指定。
- 权能:
users=write
语法
PUT /{admin}/user?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
要创建的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
可以作为uid
的一部分指定租户名称,遵循语法tenant$user
,参考多租户 for more details.
display-name
- 描述:
要创建的用户的显示名称。
- 类型:
字符串
- 示例:
foo user
- 必需:
是
email
- 描述:
与用户关联的电子邮件地址。
- 类型:
字符串
- 示例:
foo@bar.com
- 必需:
否
key-type
- 描述:
要生成的密钥类型,选项为:swift、s3(默认)。
- 类型:
字符串
- 示例:
s3
[s3
]- 必需:
否
access-key
- 描述:
指定访问密钥。
- 类型:
字符串
- 示例:
ABCD0EF12GHIJ2K34LMN
- 必需:
否
secret-key
- 描述:
指定密钥。
- 类型:
字符串
- 示例:
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8
- 必需:
否
user-caps
- 描述:
用户权限。
- 类型:
字符串
- 示例:
usage=read, write; users=read
- 必需:
否
generate-key
- 描述:
为现有密钥环生成一个新的密钥对。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
max-buckets
- 描述:
指定用户可以拥有的最大桶数。
- 类型:
整数
- 示例:
500 [1000]
- 必需:
否
suspended
- 描述:
指定用户是否应该被暂停。
- 类型:
布尔值
- 示例:
False [False]
- 必需:
否
Jewel 版本中的新增功能。
tenant
- 描述:
the Tenant under which a user is a part of.
- 类型:
string
- 示例:
tenant1
- 必需:
否
default-placement
- 描述:
用户的默认放置。
- 类型:
string
- 示例:
default-placement
- 必需:
否
default-storage-class
:描述:用户的默认存储类别,设置此选项时必须定义 default-placement。
响应实体
如果成功,响应包含用户信息。
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
tenant
- 描述:
用户所属的租户。
- 类型:
字符串
- 父级:
user
user_id
- 描述:
用户 ID。
- 类型:
字符串
- 父级:
user
display_name
- 描述:
用户的显示名称。
- 类型:
字符串
- 父级:
user
suspended
- 描述:
如果用户被暂停,则为 True。
- 类型:
布尔值
- 父级:
user
max_buckets
- 描述:
用户可以拥有的最大桶数。
- 类型:
整数
- 父级:
user
subusers
- 描述:
与此用户帐户关联的子用户。
- 类型:
容器
- 父级:
user
keys
- 描述:
与此用户帐户关联的 S3 密钥。
- 类型:
容器
- 父级:
user
swift_keys
- 描述:
与此用户帐户关联的 Swift 密钥。
- 类型:
容器
- 父级:
user
caps
- 描述:
用户权限。
- 类型:
容器
- 父级:
user
特殊错误响应
UserExists
- 描述:
尝试创建现有用户。
- 代码:
409 冲突
InvalidAccessKey
- 描述:
指定了无效的访问密钥。
- 代码:
400 Bad Request
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
InvalidSecretKey
- 描述:
指定了无效的密钥。
- 代码:
400 Bad Request
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
KeyExists
- 描述:
提供的访问密钥属于另一个用户。
- 代码:
409 冲突
EmailExists
- 描述:
提供的电子邮件地址已存在。
- 代码:
409 冲突
InvalidCapability
- 描述:
尝试授予无效的管理员功能。
- 代码:
400 Bad Request
Modify User
修改用户。
- 权能:
users=write
语法
POST /{admin}/user?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
要修改的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
display-name
- 描述:
要修改的用户的显示名称。
- 类型:
字符串
- 示例:
foo user
- 必需:
否
email
- 描述:
要与用户关联的电子邮件地址。
- 类型:
字符串
- 示例:
foo@bar.com
- 必需:
否
generate-key
- 描述:
为现有密钥环生成一个新的密钥对。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
access-key
- 描述:
指定访问密钥。
- 类型:
字符串
- 示例:
ABCD0EF12GHIJ2K34LMN
- 必需:
否
secret-key
- 描述:
指定密钥。
- 类型:
字符串
- 示例:
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8
- 必需:
否
key-type
- 描述:
要生成的密钥类型,选项为:swift、s3(默认)。
- 类型:
字符串
- 示例:
s3
- 必需:
否
max-buckets
- 描述:
指定用户可以拥有的最大桶数。
- 类型:
整数
- 示例:
500 [1000]
- 必需:
否
suspended
- 描述:
指定用户是否应该被暂停。
- 类型:
布尔值
- 示例:
False [False]
- 必需:
否
op-mask
- 描述:
要修改的用户的 op-mask。
- 类型:
字符串
- 示例:
read, write, delete, *
- 必需:
否
default-placement
- 描述:
用户的默认放置。
- 类型:
string
- 示例:
default-placement
- 必需:
否
default-storage-class
:描述:用户的默认存储类别,设置此选项时必须定义 default-placement。
响应实体
如果成功,响应包含用户信息。
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
user_id
- 描述:
用户 ID。
- 类型:
字符串
- 父级:
user
display_name
- 描述:
用户的显示名称。
- 类型:
字符串
- 父级:
user
suspended
- 描述:
如果用户被暂停,则为 True。
- 类型:
布尔值
- 父级:
user
max_buckets
- 描述:
用户可以拥有的最大桶数。
- 类型:
整数
- 父级:
user
subusers
- 描述:
与此用户帐户关联的子用户。
- 类型:
容器
- 父级:
user
keys
- 描述:
与此用户帐户关联的 S3 密钥。
- 类型:
容器
- 父级:
user
swift_keys
- 描述:
与此用户帐户关联的 Swift 密钥。
- 类型:
容器
- 父级:
user
caps
- 描述:
用户权限。
- 类型:
容器
- 父级:
user
特殊错误响应
InvalidAccessKey
- 描述:
指定了无效的访问密钥。
- 代码:
400 Bad Request
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
InvalidSecretKey
- 描述:
指定了无效的密钥。
- 代码:
400 Bad Request
KeyExists
- 描述:
提供的访问密钥属于另一个用户。
- 代码:
409 冲突
EmailExists
- 描述:
提供的电子邮件地址已存在。
- 代码:
409 冲突
InvalidCapability
- 描述:
尝试授予无效的管理员功能。
- 代码:
400 Bad Request
Remove User
删除现有用户。
- 权能:
users=write
语法
DELETE /{admin}/user?format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
要删除的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是。
purge-data
- 描述:
指定时,用户所属的桶和对象也将被删除。
- 类型:
布尔值
- 示例:
True
- 必需:
否
响应实体
无
特殊错误响应
None.
Create Subuser
创建一个新的子用户(主要适用于使用 Swift API 的客户端)。access
授予权限。与用户创建一样,如果subuser
指定而没有secret
,则将自动生成密钥。
- 权能:
users=write
语法
PUT /{admin}/user?subuser&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
子用户要创建的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
subuser
- 描述:
指定要创建的子用户 ID。
- 类型:
字符串
- 示例:
sub_foo
- 必需:
是
secret-key
- 描述:
指定密钥。
- 类型:
字符串
- 示例:
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8
- 必需:
否
key-type
- 描述:
要生成的密钥类型,选项为:swift(默认)、s3。
- 类型:
字符串
- 示例:
swift
[swift
]- 必需:
否
access
- 描述:
为子用户设置访问权限,应该是
read, write, readwrite, full
.- 类型:
字符串
- 示例:
read
- 必需:
否
generate-secret
- 描述:
中的一个。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
响应实体
中的一个。
subusers
- 描述:
与用户帐户关联的子用户。
- 类型:
容器
id
- 描述:
子用户 ID。
- 类型:
字符串
- 父级:
subusers
permissions
- 描述:
子用户对用户帐户的访问权限。
- 类型:
字符串
- 父级:
subusers
特殊错误响应
SubuserExists
- 描述:
指定的子用户已存在。
- 代码:
409 冲突
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
InvalidSecretKey
- 描述:
指定了无效的密钥。
- 代码:
400 Bad Request
InvalidAccess
- 描述:
指定了无效的子用户访问权限。
- 代码:
400 Bad Request
Modify Subuser
修改现有子用户
- 权能:
users=write
语法
POST /{admin}/user?subuser&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
子用户要修改的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
subuser
- 描述:
要修改的子用户 ID。
- 类型:
字符串
- 示例:
sub_foo
- 必需:
是
generate-secret
- 描述:
为子用户生成一个新的密钥,替换现有密钥。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
secret
- 描述:
指定密钥。
- 类型:
字符串
- 示例:
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8
- 必需:
否
key-type
- 描述:
要生成的密钥类型,选项为:swift(默认)、s3 .
- 类型:
字符串
- 示例:
swift
[swift
]- 必需:
否
access
- 描述:
为子用户设置访问权限,应该是
read, write, readwrite, full
.- 类型:
字符串
- 示例:
read
- 必需:
否
响应实体
中的一个。
subusers
- 描述:
与用户帐户关联的子用户。
- 类型:
容器
id
- 描述:
子用户 ID。
- 类型:
字符串
- 父级:
subusers
permissions
- 描述:
子用户对用户帐户的访问权限。
- 类型:
字符串
- 父级:
subusers
特殊错误响应
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
InvalidSecretKey
- 描述:
指定了无效的密钥。
- 代码:
400 Bad Request
InvalidAccess
- 描述:
指定了无效的子用户访问权限。
- 代码:
400 Bad Request
Remove Subuser
删除现有子用户
- 权能:
users=write
语法
DELETE /{admin}/user?subuser&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
子用户要删除的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
subuser
- 描述:
要删除的子用户 ID.
- 类型:
字符串
- 示例:
sub_foo
- 必需:
是
purge-keys
- 描述:
删除属于子用户的密钥。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
响应实体
None.
特殊错误响应
None.
Create Key
创建一个新的密钥。如果指定了subuser
,则默认创建的密钥类型为 swift。如果只提供access-key
或secret-key
中的一个,则提交的密钥将自动生成,即如果只secret-key
指定,则access-key
将自动生成。默认情况下,生成的密钥会添加到密钥环中,而不会替换现有的密钥对。access-key
指定并且是指定用户拥有的现有密钥,则它将被修改。响应是一个列出与创建的密钥类型相同的所有密钥的容器。注意,在创建 swift 密钥时,指定选项access-key
将没有任何效果。此外,每个用户或子用户只能持有一个 swift 密钥。
- 权能:
users=write
语法
PUT /{admin}/user?key&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
接收新密钥的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
subuser
- 描述:
接收新密钥的子用户 ID。
- 类型:
字符串
- 示例:
sub_foo
- 必需:
否
key-type
- 描述:
要生成的密钥类型,选项为:swift、s3(默认)。
- 类型:
字符串
- 示例:
s3
[s3
]- 必需:
否
access-key
- 描述:
指定访问密钥。
- 类型:
字符串
- 示例:
AB01C2D3EF45G6H7IJ8K
- 必需:
否
secret-key
- 描述:
指定密钥。
- 类型:
字符串
- 示例:
0ab/CdeFGhij1klmnopqRSTUv1WxyZabcDEFgHij
- 必需:
否
generate-key
- 描述:
为现有密钥环生成一个新的密钥对。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
active
- 描述:
激活或停用密钥。
- 类型:
布尔值
- 示例:
True [True]
- 必需:
否
响应实体
keys
- 描述:
与此用户帐户关联的创建类型密钥。
- 类型:
容器
user
- 描述:
与密钥关联的用户帐户。
- 类型:
字符串
- 父级:
keys
access-key
- 描述:
访问密钥。
- 类型:
字符串
- 父级:
keys
secret-key
- 描述:
密钥
- 类型:
字符串
- 父级:
keys
特殊错误响应
InvalidAccessKey
- 描述:
指定了无效的访问密钥。
- 代码:
400 Bad Request
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
InvalidSecretKey
- 描述:
指定了无效的密钥。
- 代码:
400 Bad Request
InvalidKeyType
- 描述:
指定了无效的密钥类型。
- 代码:
400 Bad Request
KeyExists
- 描述:
提供的访问密钥属于另一个用户。
- 代码:
409 冲突
Remove Key
删除现有密钥。
- 权能:
users=write
语法
DELETE /{admin}/user?key&format=json HTTP/1.1
Host: {fqdn}
请求参数
access-key
- 描述:
要删除的 S3 密钥对所属的 S3 访问密钥。
- 类型:
字符串
- 示例:
AB01C2D3EF45G6H7IJ8K
- 必需:
是
uid
- 描述:
要从中删除密钥的用户。
- 类型:
字符串
- 示例:
foo_user
- 必需:
否
subuser
- 描述:
要从中删除密钥的子用户。
- 类型:
字符串
- 示例:
sub_foo
- 必需:
否
key-type
- 描述:
要删除的密钥类型,选项为:swift、s3。
- 类型:
字符串
- 示例:
swift
- 必需:
否
特殊错误响应
None.
响应实体
None.
Get Bucket Info
获取现有桶子集的信息。如果uid
指定而没有bucket
,则返回属于用户的所有桶。如果bucket
单独指定,则检索该特定桶的信息。
- 权能:
buckets=read
语法
GET /{admin}/bucket?format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要返回信息的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
否
uid
- 描述:
要检索桶信息的用户。
- 类型:
字符串
- 示例:
foo_user
- 必需:
否
stats
- 描述:
返回桶统计信息。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
响应实体
如果成功,请求返回一个包含所需桶信息的 buckets 容器。
stats
- 描述:
每个桶的信息。
- 类型:
容器
buckets
- 描述:
包含一个或多个桶容器的列表。
- 类型:
容器
bucket
- 描述:
单个桶信息的容器。
- 类型:
容器
- 父级:
buckets
name
- 描述:
桶的名称。
- 类型:
字符串
- 父级:
bucket
pool
- 描述:
桶存储在其中的池。
- 类型:
字符串
- 父级:
bucket
id
- 描述:
桶的唯一 ID。
- 类型:
字符串
- 父级:
bucket
marker
- 描述:
内部桶标签。
- 类型:
字符串
- 父级:
bucket
owner
- 描述:
桶所有者的用户 ID。
- 类型:
字符串
- 父级:
bucket
usage
- 描述:
存储使用信息。
- 类型:
容器
- 父级:
bucket
index
- 描述:
桶索引的状态。
- 类型:
字符串
- 父级:
bucket
特殊错误响应
IndexRepairFailed
- 描述:
桶索引修复失败。
- 代码:
409 冲突
Check Bucket Index
检查现有桶的索引。注意:要检查多部分对象帐户,必须将check-objects
, fix
设置为 True。
- 权能:
buckets=write
语法
GET /{admin}/bucket?index&format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要返回信息的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
check-objects
- 描述:
检查多部分对象帐户。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
fix
- 描述:
检查时也修复桶索引。
- 类型:
布尔值
- 示例:
False [False]
- 必需:
否
响应实体
index
- 描述:
桶索引的状态。
- 类型:
字符串
特殊错误响应
IndexRepairFailed
- 描述:
桶索引修复失败。
- 代码:
409 冲突
Remove Bucket
删除现有桶。
- 权能:
buckets=write
语法
DELETE /{admin}/bucket?format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要删除的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
tenant
- 描述:
要删除桶的租户。
- 类型:
字符串
- 示例:
tenant1
- 必需:
否
purge-objects
- 描述:
删除前删除桶中的对象。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
bypass-gc
- 描述:
跳过垃圾回收。
- 类型:
布尔值
- 示例:
True [False]
- 必需:
否
响应实体
None.
特殊错误响应
BucketNotEmpty
- 描述:
尝试删除非空桶。
- 代码:
409 冲突
ObjectRemovalFailed
- 描述:
无法删除对象。
- 代码:
409 冲突
Unlink Bucket
将桶从指定用户解除链接。主要用于更改桶所有权。
- 权能:
buckets=write
语法
POST /{admin}/bucket?format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要解除链接的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
uid
- 描述:
要从其解除链接的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
响应实体
None.
特殊错误响应
BucketUnlinkFailed
- 描述:
无法从指定用户解除链接桶。
- 代码:
409 冲突
Link Bucket
将桶链接到指定用户,从任何先前用户解除链接桶。
- 权能:
buckets=write
语法
PUT /{admin}/bucket?format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要解除链接的桶名称。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
bucket-id
- 描述:
要解除链接的桶 ID。
- 类型:
字符串
- 示例:
dev.6607669.420
- 必需:
否
uid
- 描述:
要链接桶的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
响应实体
bucket
- 描述:
单个桶信息的容器。
- 类型:
容器
name
- 描述:
桶的名称。
- 类型:
字符串
- 父级:
bucket
pool
- 描述:
桶存储在其中的池。
- 类型:
字符串
- 父级:
bucket
id
- 描述:
桶的唯一 ID。
- 类型:
字符串
- 父级:
bucket
marker
- 描述:
内部桶标签。
- 类型:
字符串
- 父级:
bucket
owner
- 描述:
桶所有者的用户 ID。
- 类型:
字符串
- 父级:
bucket
usage
- 描述:
存储使用信息。
- 类型:
容器
- 父级:
bucket
index
- 描述:
桶索引的状态。
- 类型:
字符串
- 父级:
bucket
特殊错误响应
BucketUnlinkFailed
- 描述:
无法从指定用户解除链接桶。
- 代码:
409 冲突
BucketLinkFailed
- 描述:
无法将桶链接到指定用户。
- 代码:
409 冲突
删除对象
删除现有对象。注意:不需要所有者非暂停。
- 权能:
buckets=write
语法
DELETE /{admin}/bucket?object&format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要删除的对象所在的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
object
- 描述:
要删除的对象。
- 类型:
字符串
- 示例:
foo.txt
- 必需:
是
响应实体
None.
特殊错误响应
NoSuchObject
- 描述:
指定的对象不存在。
- 代码:
404 未找到
ObjectRemovalFailed
- 描述:
无法删除对象。
- 代码:
409 冲突
Get Bucket or Object Policy
读取对象或桶的策略。
- 权能:
buckets=read
语法
GET /{admin}/bucket?policy&format=json HTTP/1.1
Host: {fqdn}
请求参数
bucket
- 描述:
要从中读取策略的桶。
- 类型:
字符串
- 示例:
foo_bucket
- 必需:
是
object
- 描述:
要从中读取策略的对象。
- 类型:
字符串
- 示例:
foo.txt
- 必需:
否
响应实体
如果成功,返回对象或桶策略
policy
- 描述:
访问控制策略。
- 类型:
容器
特殊错误响应
IncompleteBody
- 描述:
要求数据桶策略请求中未指定桶,或者对象策略请求中未指定桶和对象。
- 代码:
400 Bad Request
Add A User Capability
向指定用户添加管理功能。
- 权能:
users=write
语法
PUT /{admin}/user?caps&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
要向其添加管理功能的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
user-caps
- 描述:
要添加到用户的管理功能。
- 类型:
字符串
- 示例:
usage=read,write;user=write
- 必需:
是
响应实体
如果成功,响应包含用户的权限。
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
- 父级:
user
user_id
- 描述:
用户 ID。
- 类型:
字符串
- 父级:
user
caps
- 描述:
用户权限。
- 类型:
容器
- 父级:
user
特殊错误响应
InvalidCapability
- 描述:
尝试授予无效的管理员功能。
- 代码:
400 Bad Request
Example Request
PUT /{admin}/user?caps&user-caps=usage=read,write;user=write&format=json HTTP/1.1
Host: {fqdn}
Content-Type: text/plain
Authorization: {your-authorization-token}
Remove A User Capability
从指定用户中删除管理功能。
- 权能:
users=write
语法
DELETE /{admin}/user?caps&format=json HTTP/1.1
Host: {fqdn}
请求参数
uid
- 描述:
要从中删除管理功能的用户 ID。
- 类型:
字符串
- 示例:
foo_user
- 必需:
是
user-caps
- 描述:
要从用户中删除的管理功能。
- 类型:
字符串
- 示例:
usage=read, write
- 必需:
是
响应实体
如果成功,响应包含用户的权限。
user
- 描述:
一个包含用户数据信息的容器。
- 类型:
容器
- 父级:
user
user_id
- 描述:
用户 ID。
- 类型:
字符串
- 父级:
user
caps
- 描述:
用户权限。
- 类型:
容器
- 父级:
user
特殊错误响应
InvalidCapability
- 描述:
尝试删除无效的管理员功能。
- 代码:
400 Bad Request
NoSuchCap
- 描述:
用户不拥有指定的权限。
- 代码:
404 未找到
配额
Admin Operations API 允许您对用户和用户拥有的桶设置配额。有关更多详细信息,请参阅配额管理。配额包括桶中的最大对象数和最大存储大小(以兆字节为单位)。
要查看配额,用户必须具有users=read
权限。要设置、修改或禁用配额,用户必须具有users=write
权限。管理员指南 for details.
配额的有效参数包括:
存储桶: The
bucket
option 允许您为用户拥有的桶指定配额。最大对象: The
max-objects
设置允许您指定最大对象数。负值禁用此设置。最大大小: The
max-size
option 允许您指定最大字节数的配额。Themax-size-kb
option 允许您以 KiB 指定。负值禁用此设置。配额类型: The
quota-type
选项设置配额的范围。选项是bucket
和user
.启用/禁用配额: The
enabled
option 指定配额是否应启用。值应为“True”或“False”。
Get User Quota
要获取配额,用户必须具有users
权限设置 withread
权限。
GET /admin/user?quota&uid=<uid>"a-type=user
设置用户配额
要设置配额,用户必须具有users
权限设置 withwrite
权限。
PUT /admin/user?quota&uid=<uid>"a-type=user
内容必须包含作为相应读取操作中编码的配额设置的 JSON 表示形式。
Get Bucket Quota
要获取配额,用户必须具有users
权限设置 withread
权限。
GET /admin/user?quota&uid=<uid>"a-type=bucket
设置存储桶配额
要设置配额,用户必须具有users
权限设置 withwrite
权限。
PUT /admin/user?quota&uid=<uid>"a-type=bucket
内容必须包含作为相应读取操作中编码的配额设置的 JSON 表示形式。
Set Quota for an Individual Bucket
要设置配额,用户必须具有buckets
权限设置 withwrite
权限。
PUT /admin/bucket?quota&uid=<uid>&bucket=<bucket-name>
内容必须包含在上述 Set Bucket Quota 部分中提到的配额设置的 JSON 表示形式。
Rate Limit
Admin Operations API 允许您对用户和桶以及全局速率限制配置进行设置和获取。有关更多详细信息,请参阅速率限制管理速率限制包括每分钟对桶和/或用户的最大操作数和/或字节数,通过读取和/或写入分开,以及最大存储大小(以兆字节为单位)。
要查看速率限制,用户必须具有ratelimit=read
权限。要设置、修改或禁用速率限制,用户必须具有ratelimit=write
权限。管理员指南 for details.
配额的有效参数包括:
存储桶: The
bucket
option 允许您为桶指定速率限制。用户: The
uid
option 允许您为用户指定速率限制。最大读取字节数: The
max-read-bytes
设置允许您指定每分钟最大读取字节数。0 值禁用此设置。最大写入字节数: The
max-write-bytes
设置允许您指定每分钟最大写入字节数。0 值禁用此设置。最大读取操作: The
max-read-ops
设置允许您指定每分钟最大读取操作数。0 值禁用此设置。最大写入操作: The
max-write-ops
设置允许您指定每分钟最大写入操作数。0 值禁用此设置。全局: The
global
option 允许您指定全局速率限制。速率限制范围: The
ratelimit-scope
option 设置速率限制的范围。bucket
,user
和anonymous
.anonymous
仅在设置全局配置时有效启用/禁用速率限制: The
enabled
option 指定速率限制是否应启用。值应为“True”或“False”。
获取用户速率限制
要获取速率限制,用户必须具有ratelimit
权限设置 withread
权限。
GET /{admin}/ratelimit?ratelimit-scope=user&uid=<uid>
设置用户速率限制
要设置速率限制,用户必须具有ratelimit
权限设置 withwrite
权限。
POST /{admin}/ratelimit?ratelimit-scope=user&uid=<uid><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
获取存储桶速率限制
要获取速率限制,用户必须具有users
权限设置 withread
权限。
GET /{admin}/ratelimit?bucket=<bucket>&ratelimit-scope=bucket
Set Rate Limit for an Individual Bucket
要设置速率限制,用户必须具有ratelimit
权限设置 withwrite
权限。
POST /{admin}/ratelimit?bucket=<bucket-name>&ratelimit-scope=bucket<[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>]>
Get Global Rate Limit
要获取全局速率限制,用户必须具有ratelimit
权限设置 withread
权限。
GET /{admin}/ratelimit?global=<True|False>
Set Global User Rate Limit
要设置速率限制,用户必须具有ratelimit
权限设置 withwrite
权限。
POST /{admin}/ratelimit?ratelimit-scope=user&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
Set Global Rate Limit Bucket
要设置速率限制,用户必须具有ratelimit
权限设置 withwrite
权限。
POST /{admin}/ratelimit?ratelimit-scope=bucket&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>]>
Set Global Anonymous User Rate Limit
要设置速率限制,用户必须具有ratelimit
权限设置 withwrite
权限。
POST /{admin}/ratelimit?ratelimit-scope=anon&global=<True|False><[&max-read-bytes=<bytes>][&max-write-bytes=<bytes>][&max-read-ops=<ops>][&max-write-ops=<ops>][enabled=<True|False>]>
标准错误响应
AccessDenied
- 描述:
访问被拒绝。
- 代码:
403 Forbidden
InternalError
- 描述:
内部服务器错误。
- 代码:
500 Internal Server Error
NoSuchUser
- 描述:
用户不存在。
- 代码:
404 未找到
NoSuchBucket
- 描述:
存储桶不存在。
- 代码:
404 未找到
NoSuchKey
- 描述:
没有此访问密钥。
- 代码:
404 未找到
Binding libraries
Golang
Java
PHP
Python
由 Ceph 基金会带给您
Ceph 文档是一个社区资源,由非盈利的 Ceph 基金会资助和托管Ceph Foundation. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.