注意

本文档适用于 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]

必需:

特殊错误响应

待定。

获取用户信息

获取用户信息。Capusersuser-info-without-keys必须设置为read运行此操作需要权限。user-info-without-keys被设置为read*,S3 密钥和 Swift 密钥将不会包含在响应中,除非运行此操作的 用户是系统用户、管理员用户或必须作为请求参数提供 capusers被设置为read.

任何uidaccess-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-keysecret-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-keysecret-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 冲突

删除对象

删除现有对象。注意:不需要所有者非暂停。

权能:

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 bucketoption 允许您为用户拥有的桶指定配额。

  • 最大对象: The max-objects设置允许您指定最大对象数。负值禁用此设置。

  • 最大大小: The max-sizeoption 允许您指定最大字节数的配额。Themax-size-kboption 允许您以 KiB 指定。负值禁用此设置。

  • 配额类型: The quota-type选项设置配额的范围。选项是bucketuser.

  • 启用/禁用配额: The enabledoption 指定配额是否应启用。值应为“True”或“False”。

Get User Quota

要获取配额,用户必须具有users权限设置 withread权限。

GET /admin/user?quota&uid=<uid>&quota-type=user

设置用户配额

要设置配额,用户必须具有users权限设置 withwrite权限。

PUT /admin/user?quota&uid=<uid>&quota-type=user

内容必须包含作为相应读取操作中编码的配额设置的 JSON 表示形式。

Get Bucket Quota

要获取配额,用户必须具有users权限设置 withread权限。

GET /admin/user?quota&uid=<uid>&quota-type=bucket

设置存储桶配额

要设置配额,用户必须具有users权限设置 withwrite权限。

PUT /admin/user?quota&uid=<uid>&quota-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 bucketoption 允许您为桶指定速率限制。

  • 用户: The uidoption 允许您为用户指定速率限制。

  • 最大读取字节数: The max-read-bytes设置允许您指定每分钟最大读取字节数。0 值禁用此设置。

  • 最大写入字节数: The max-write-bytes设置允许您指定每分钟最大写入字节数。0 值禁用此设置。

  • 最大读取操作: The max-read-ops设置允许您指定每分钟最大读取操作数。0 值禁用此设置。

  • 最大写入操作: The max-write-ops设置允许您指定每分钟最大写入操作数。0 值禁用此设置。

  • 全局: The globaloption 允许您指定全局速率限制。

  • 速率限制范围: The ratelimit-scopeoption 设置速率限制的范围。bucket , useranonymous. anonymous仅在设置全局配置时有效

  • 启用/禁用速率限制: The enabledoption 指定速率限制是否应启用。值应为“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. 如果您想支持这一点和我们的其他工作,请考虑加入现在加入.