2.15. bucket 通知
作为存储管理员,您可以使用这些 API 为存储桶通知机制提供配置和部署接口。API 主题是命名的对象,其中包含特定端点的定义。bucket 通知将主题与特定 bucket 关联。S3 bucket operations 部分提供有关 bucket 通知的更多详细信息。
在所有主题操作中,参数都是 URL 编码,并使用 application/x-www-form-urlencoded 内容类型在消息正文中发送。
需要重新创建与这个主题相关联的任何存储桶通知,以使主题更新生效。
先决条件
- 在 Ceph 对象网关上创建 bucket 通知。
2.15.1. 存储桶通知概述 复制链接链接已复制到粘贴板!
bucket 通知提供了一种方式,可以在 bucket 中发生特定事件时从 Ceph 对象网关发送信息。bucket 通知可以发送到 HTTP、AMQP0.9.1 和 Kafka 端点。必须创建一个通知条目,以便为特定存储桶上的事件和特定主题发送存储桶通知。可以在事件类型的子集上创建 bucket 通知,也可以默认为所有事件类型创建 bucket 通知。bucket 通知可以根据密钥前缀或后缀、与键匹配的正则表达式、附加到对象或对象标签的元数据属性过滤出事件。bucket 通知具有 REST API,用于为 bucket 通知机制提供配置和控制接口。
当对象同步到区域时,发送存储桶通知可让外部系统在对象级别的区域同步状态中获取信息。当通过存储桶通知机制进行配置时,存储桶通知事件类型 s3:ObjectSynced:* 和 s3:ObjectSynced:Created,在成功同步对象时从同步 RGW 中发送通知事件。主题和通知配置都应该在要发送通知事件的每个区中单独进行。
2.15.2. 持久性通知 复制链接链接已复制到粘贴板!
永久通知支持可靠和异步发送来自 Ceph 对象网关的通知到在主题上配置的端点。常规通知也很可靠,因为向端点的交付是在请求期间同步执行的。使用持久通知时,Ceph 对象网关会重试发送通知,即使端点停机或操作过程中存在网络问题,如果成功发送到端点,也会重试通知。只有在与通知操作相关的所有其他操作都成功后,才会发送通知。如果端点在较长时间内停机,通知队列会填满,已为这些端点配置通知的 S3 操作将失败。
使用 kafka-ack-level=none 时,当代理再次启动时,没有代表消息失败,因此在代理停机时发送的消息不会被重试。当代理再次启动后,只会看到新的通知。
2.15.3. 创建主题 复制链接链接已复制到粘贴板!
您可以在创建存储桶通知前创建主题。主题是一个简单通知服务(SNS)实体和所有主题操作,即 创建、删除、列出 和 get 是 SNS 操作。主题需要具有创建存储桶通知时使用的端点参数。请求成功后,响应中包含稍后可用来在存储桶通知请求中引用此主题的 Amazon Resource Name(ARN)主题。
topic_arn 提供存储桶通知配置,并在创建主题后生成。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 根级别访问权限.
- 安装 Ceph 对象网关.
- 用户 access key 和 secret key。
- 端点参数.
流程
创建带有请求格式的主题:
语法
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是请求参数:
-
端点:要发送通知的端点的 URL。 -
OpaqueData: 不透明数据在主题配置中设置,并添加到该主题触发的所有通知。 -
persistent:指示对此端点的通知是否是持久的,是否为异步的。默认值为false。 HTTP 端点:
-
URL: https://FQDN:PORT -
port defaults to: 分别为 HTTP[S] 使用 80/443。 -
verify-ssl:指示服务器证书是否由客户端验证。默认情况下,它是true。
-
AMQP0.9.1 端点:
-
URL: amqp://USER:PASSWORD@FQDN:PORT[/VHOST]. -
用户和密码分别默认为:
guest和guest。 - 应当通过 HTTPS 提供用户和密码详细信息,否则主题创建请求将被拒绝。
-
端口默认为:5672。 -
vhost默认为:"/" -
amqp-exchange:该交换必须存在,并且能够根据主题路由消息。这是用于 AMQP0.9.1 的强制参数。指向同一端点的不同主题必须使用相同的交换。 AMQP-acklevel: 不需要端到端确认,因为消息可能会在代理中保留,然后再传送到最终目的地。有三个确认方法:-
none:当发送到代理,则消息被视为已发送。 -
broker: 默认情况下,如果代理确认,则消息被视为已发送。 routable:如果代理可路由到使用者,则消息被视为已发送。注意特定参数的键和值不必驻留在同一行中,或者按任何特定顺序,但必须使用相同的索引。属性索引不需要是连续的,或从任何特定值开始。
注意topic-name用于 AMQP 主题。
-
-
Kafka 端点:
-
URL: kafka://USER:PASSWORD@FQDN:PORT. -
use-ssl默认被设置为false。如果将use-ssl设置为true,则与代理的连接会使用安全的连接。 -
如果提供了
ca-location,并且使用安全连接,则会使用指定的 CA 而不是默认的端口来验证代理。 - 用户和密码只能通过 HTTP[S] 提供。否则,主题创建请求将被拒绝。
-
用户和密码只能随
use-ssl一同提供,否则与代理的连接将失败。 -
端口默认为: 9092。 Kafka-acklevel: 不需要结束确认,因为信息可能会在代理中保留,然后再发送到最终目的地。存在两种确认方法:-
none:当发送到代理,则消息被视为已发送。 -
broker: 默认情况下,如果代理确认,则消息被视为已发送。
-
-
-
以下是响应格式的示例:
示例
响应中的 Amazon 资源名称(ARN)将具有以下格式: arn:aws:sns:ZONE_GROUP:TENANT:TOPIC
以下是一个 AMQP0.9.1 端点的示例:
示例
client.create_topic(Name='my-topic' , Attributes={'push-endpoint': 'amqp://127.0.0.1:5672', 'amqp-exchange': 'ex1', 'amqp-ack-level': 'broker'}) "
client.create_topic(Name='my-topic' , Attributes={'push-endpoint': 'amqp://127.0.0.1:5672', 'amqp-exchange': 'ex1', 'amqp-ack-level': 'broker'}) "
2.15.4. 获取主题信息 复制链接链接已复制到粘贴板!
返回有关特定主题的信息。如果提供,这可包括端点信息。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 根级别访问权限.
- 安装 Ceph 对象网关.
- 用户 access key 和 secret key。
- 端点参数.
流程
使用以下请求格式获取主题信息:
语法
POST Action=GetTopic &TopicArn=TOPIC_ARN
POST Action=GetTopic &TopicArn=TOPIC_ARNCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是响应格式的示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是标签和定义:
-
User:创建该主题的用户的名称。 -
Name:主题的名称. JSON 格式的端点包括:
EndpointAddress:端点 URL。如果端点 URL 包含用户和密码信息,则必须通过 HTTPS 进行请求。otheriwse,主题的 get 请求被拒绝。-
EndPointArgs:端点参数。 -
EndpointTopic:发送到端点的主题名称可以与上例主题名称不同。 -
HasStoredSecret:当端点 URL 包含用户和密码信息时为true。 -
Persistent: 当主题是持久的则为true。
-
-
TopicArn: Topic ARN。 -
OpaqueData:这是在主题上设置的不透明数据。
-
2.15.5. 列出主题 复制链接链接已复制到粘贴板!
列出用户已定义的主题。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 根级别访问权限.
- 安装 Ceph 对象网关.
- 用户 access key 和 secret key。
- 端点参数.
流程
使用以下请求格式列出主题信息:
语法
POST Action=ListTopics
POST Action=ListTopicsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是响应格式的示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果端点 URL 包含用户和密码信息,在任何主题中,则必须通过 HTTPS 进行请求。否则,主题列表请求将被拒绝。
2.15.6. 删除主题 复制链接链接已复制到粘贴板!
删除删除主题会导致没有操作,且不是失败。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 根级别访问权限.
- 安装 Ceph 对象网关.
- 用户 access key 和 secret key。
- 端点参数.
流程
使用以下请求格式删除主题:
语法
POST Action=DeleteTopic &TopicArn=TOPIC_ARN
POST Action=DeleteTopic &TopicArn=TOPIC_ARNCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下是响应格式的示例:
<DeleteTopicResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/"> <ResponseMetadata> <RequestId></RequestId> </ResponseMetadata> </DeleteTopicResponse>
<DeleteTopicResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/"> <ResponseMetadata> <RequestId></RequestId> </ResponseMetadata> </DeleteTopicResponse>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.15.7. 使用命令行界面进行主题管理 复制链接链接已复制到粘贴板!
您可以使用命令行界面列出、获取和删除主题。
先决条件
- Ceph 对象网关节点的根级别访问权限.
流程
获取用户的所有主题列表:
语法
radosgw-admin topic list --uid=USER_ID
radosgw-admin topic list --uid=USER_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin topic list --uid=example
[root@rgw ~]# radosgw-admin topic list --uid=exampleCopy to Clipboard Copied! Toggle word wrap Toggle overflow 获取特定主题的配置:
语法
radosgw-admin topic get --uid=USER_ID --topic=TOPIC_NAME
radosgw-admin topic get --uid=USER_ID --topic=TOPIC_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 示例
radosgw-admin topic get --uid=example --topic=example-topic
[root@rgw ~]# radosgw-admin topic get --uid=example --topic=example-topicCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除特定的主题:
语法
radosgw-admin topic rm --uid=USER_ID --topic=TOPIC_NAME
radosgw-admin topic rm --uid=USER_ID --topic=TOPIC_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
radosgw-admin topic rm --uid=example --topic=example-topic
[root@rgw ~]# radosgw-admin topic rm --uid=example --topic=example-topicCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.15.8. 管理通知配置 复制链接链接已复制到粘贴板!
您可以使用命令行界面列出、获取和删除存储桶的通知配置。
先决条件
- 一个正在运行的 Red Hat Ceph Storage 集群。
- 配置了 Ceph 对象网关。
流程
列出所有存储桶通知配置:
语法
radosgw-admin notification list --bucket=BUCKET_NAME
radosgw-admin notification list --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取存储桶通知配置:
语法
radosgw-admin notification get --bucket BUCKET_NAME --notification-id NOTIFICATION_ID
radosgw-admin notification get --bucket BUCKET_NAME --notification-id NOTIFICATION_IDCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除特定的存储桶通知配置:
语法
radosgw-admin notification rm --bucket BUCKET_NAME [--notification-id NOTIFICATION_ID]
radosgw-admin notification rm --bucket BUCKET_NAME [--notification-id NOTIFICATION_ID]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此处,NOTIFICATION_ID 是可选的。如果没有指定,命令会删除该存储桶的所有通知配置。
Example
radosgw-admin notification rm --bucket bkt2 --notification-id notif1
[root@host04 ~]# radosgw-admin notification rm --bucket bkt2 --notification-id notif1Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.15.9. 事件记录 复制链接链接已复制到粘贴板!
事件包含有关 Ceph 对象网关操作的信息,并通过所选端点以有效负载的形式发送,如 HTTP、HTTPS、Kafka 或 AMQ0.9.1。事件记录采用 JSON 格式。
支持以下 ObjectLifecycle:Expiration 事件:
-
ObjectLifecycle:Expiration:Current -
ObjectLifecycle:Expiration:NonCurrent -
ObjectLifecycle:Expiration:DeleteMarker -
ObjectLifecycle:Expiration:AbortMultipartUpload
示例
以下是事件记录密钥及其定义:
-
awsRegion: Zonegroup。 -
eventTime: 指示触发事件的时间的时间戳。 -
eventName:事件类型。它可以是ObjectCreated、ObjectRemoved或ObjectLifecycle:Expiration -
userIdentity.principalId:触发该事件的用户的身份。 -
requestParameters.sourceIPAddress:触发该事件的客户端的 IP 地址。不支持此字段。 -
responseElements.x-amz-request-id:触发事件的请求 ID。 -
responseElements.x_amz_id_2:触发事件的 Ceph 对象网关的身份。身份格式为 RGWID-ZONE-ZONEGROUP。 -
s3.configurationId:创建事件的通知 ID。 -
s3.bucket.name:存储桶的名称。 -
s3.bucket.ownerIdentity.principalId:存储桶的所有者。 -
s3.bucket.arn: bucket 的 Amazon Resource Name(ARN)。 -
s3.bucket.id:存储桶的身份。 -
s3.object.key:对象键。 -
s3.object.size:对象的大小。 -
s3.object.eTag:对象 etag。 -
s3.object.version:版本控制存储桶中的对象版本。 -
s3.object.sequencer:以十六进制格式为每个对象增大更改的标识符。 -
s3.object.metadata:对象上设置的任何元数据,作为x-amz-meta。 -
s3.object.tags:对象上设置的任何标签。 -
s3.eventId:事件的唯一标识。 -
s3.opaqueData: Opaque 数据在主题配置中设置,并添加到该主题触发的所有通知中。
2.15.10. 支持的事件类型 复制链接链接已复制到粘贴板!
支持以下事件类型: s3:ObjectCreated:* * s3:ObjectCreated:Put * s3:ObjectCreated:Post * s3:ObjectCreated:Copy * s3:ObjectCreated:CompleteMultipartUpload NOTE: In multipart upload, a ObjectCreated:CompleteMultipartUpload 通知会在进程结束时发送。* s3:ObjectRemoved:* * s3:ObjectRemoved:Delete * s3:ObjectRemoved:DeleteMarkerCreated * s3:ObjectLifecycle:Expiration:Current * s3:ObjectLifecycle:Expiration:NonCurrent * s3:ObjectLifecycle:Expiration:DeleteMarker * s3:ObjectLifecycle:Expiration:AbortMultipartUpload * s3:ObjectLifecycle:Transition: Current * s3:ObjectLifecycle:Transition:Non Current * s3:ObjectSynced:Create
2.15.11. 获取存储桶信息 复制链接链接已复制到粘贴板!
获取有关现有 bucket 子集的信息。如果在没有 bucket 的情况下指定 uid,则返回属于该用户的所有存储桶。如果只指定 存储桶,则会检索该特定存储桶的信息。
功能
`buckets=read`
`buckets=read`
语法
GET /admin/bucket?format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 用于返回信息的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 否
uid- 描述
- 检索存储桶信息的用户。
- Type
- 字符串
- 示例
-
foo_user - 必需
- 否
stats- 描述
- 返回存储桶统计信息。
- Type
- 布尔值
- 示例
- True [False]
- 必需
- 否
响应实体
stats- 描述
- 每个存储桶信息。
- Type
- Container
- 父
- 不适用
bucket- 描述
- 包含一个或多个 bucket 容器的列表。
- Type
- Container
- 父
-
bucket
bucket- 描述
- 用于单一存储桶信息的容器。
- Type
- Container
- 父
-
bucket
名称- 描述
- bucket 的名称。
- Type
- 字符串
- 父
-
bucket
pool- 描述
- bucket 存储在其中的池。
- Type
- 字符串
- 父
-
bucket
id- 描述
- 唯一的存储桶 ID。
- Type
- 字符串
- 父
-
bucket
marker- 描述
- 内部存储桶标签。
- Type
- 字符串
- 父
-
bucket
owner- 描述
- bucket 所有者的用户 ID。
- Type
- 字符串
- 父
-
bucket
usage- 描述
- 存储使用信息。
- Type
- Container
- 父
-
bucket
index- 描述
- bucket 索引的状态。
- Type
- 字符串
- 父
-
bucket
如果成功,请求会返回带有存储桶信息的 bucket 容器。
特殊错误响应
IndexRepairFailed- 描述
- bucket 索引修复失败。
- 代码
- 409 冲突
2.15.12. 检查存储桶索引 复制链接链接已复制到粘贴板!
检查现有存储桶的索引。
要检查带有 check-objects 的多部分对象核算,fix 必须设为 True。
功能
buckets=write
语法
GET /admin/bucket?index&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/bucket?index&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 用于返回信息的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 是
check-objects- 描述
- 检查 multipart 对象核算。
- Type
- 布尔值
- 示例
- True [False]
- 必需
- 否
fix- 描述
- 另外,在检查时修复存储桶索引。
- Type
- 布尔值
- 示例
- false [False]
- 必需
- 否
响应实体
index- 描述
- bucket 索引的状态。
- Type
- 字符串
特殊错误响应
IndexRepairFailed- 描述
- bucket 索引修复失败。
- 代码
- 409 冲突
2.15.13. 删除存储桶 复制链接链接已复制到粘贴板!
删除现有的存储桶。
功能
`buckets=write`
`buckets=write`
语法
DELETE /admin/bucket?format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 要删除的存储桶。
- 类型
- 字符串
- 示例
-
foo_bucket - 必需
- 是
purge-objects- 描述
- 在删除前删除存储桶的对象。
- 类型
- 布尔值
- 示例
- True [False]
- 必需
- 否
响应实体
无。
特殊错误响应
BucketNotEmpty- 描述
- 尝试删除非空存储桶。
- 代码
- 409 冲突
ObjectRemovalFailed- 描述
- 无法删除对象。
- 代码
- 409 冲突
2.15.14. 链接存储桶 复制链接链接已复制到粘贴板!
将存储桶链接到指定用户,从任何先前用户取消链接存储桶。
功能
`buckets=write`
`buckets=write`
语法
PUT /admin/bucket?format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
PUT /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 取消链接的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 是
uid- 描述
- 将存储桶链接到的用户 ID。
- Type
- 字符串
- 示例
-
foo_user - 必需
- 是
响应实体
bucket- 描述
- 用于单一存储桶信息的容器。
- Type
- Container
- 父
- 不适用
名称- 描述
- bucket 的名称。
- Type
- 字符串
- 父
-
bucket
pool- 描述
- bucket 存储在其中的池。
- Type
- 字符串
- 父
-
bucket
id- 描述
- 唯一的存储桶 ID。
- Type
- 字符串
- 父
-
bucket
marker- 描述
- 内部存储桶标签。
- Type
- 字符串
- 父
-
bucket
owner- 描述
- bucket 所有者的用户 ID。
- Type
- 字符串
- 父
-
bucket
usage- 描述
- 存储使用信息。
- Type
- Container
- 父
-
bucket
index- 描述
- bucket 索引的状态。
- Type
- 字符串
- 父
-
bucket
特殊错误响应
BucketUnlinkFailed- 描述
- 无法从指定用户取消链接存储桶。
- 代码
- 409 冲突
BucketLinkFailed- 描述
- 无法将存储桶链接到指定用户。
- 代码
- 409 冲突
2.15.15. 取消链接存储桶 复制链接链接已复制到粘贴板!
从指定用户取消链接存储桶。主要用于更改 bucket 所有权。
功能
`buckets=write`
`buckets=write`
语法
POST /admin/bucket?format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
POST /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 取消链接的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 是
uid- 描述
- 将存储桶链接到的用户 ID。
- Type
- 字符串
- 示例
-
foo_user - 必需
- 是
响应实体
无。
特殊错误响应
BucketUnlinkFailed- 描述
- 无法从指定用户取消链接存储桶。
- Type
- 409 冲突
2.15.16. 获取存储桶或对象策略 复制链接链接已复制到粘贴板!
对一个对象或 bucket 的读取策略。
功能
`buckets=read`
`buckets=read`
语法
GET /admin/bucket?policy&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/bucket?policy&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 要从中读取策略的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 是
object- 描述
- 从中读取策略的对象。
- Type
- 字符串
- 示例
-
foo.txt - 必需
- 否
响应实体
policy- 描述
- 访问控制策略。
- Type
- Container
- 父
- 不适用
如果成功,返回对象或存储桶策略
特殊错误响应
IncompleteBody- 描述
- 没有为存储桶策略请求指定存储桶,或未为对象策略请求指定对象。
- 代码
- 400 错误请求
2.15.17. 删除对象 复制链接链接已复制到粘贴板!
删除现有对象。
不需要所有者才能终止。
功能
`buckets=write`
`buckets=write`
语法
DELETE /admin/bucket?object&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/bucket?object&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 包含要删除的对象的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 是
object- 描述
- 要删除的对象
- Type
- 字符串
- 示例
-
foo.txt - 必需
- 是
响应实体
无。
特殊错误响应
NoSuchObject- 描述
- 指定对象不存在。
- 代码
- 404 not Found
ObjectRemovalFailed- 描述
- 无法删除对象。
- 代码
- 409 冲突
2.15.18. 配额 复制链接链接已复制到粘贴板!
管理操作 API 允许您在用户和用户拥有的 bucket 中设置配额。配额包括 bucket 中对象的最大数量,以及最大存储大小(以 MB 为单位)。
要查看配额,用户必须具有 users=read 能力。要设置,修改或禁用配额,用户必须具有 users=write 功能。
配额的有效参数包括:
-
Bucket:
bucket选项允许您为用户拥有的 bucket 指定配额。 -
最大对象:
--max-objects设置允许您指定对象的最大数量。负值将禁用此设置。 -
Maximum Size: 您可以使用
max-size选项为最大字节数指定配额。负值将禁用此设置。 -
Quota Scope:
quota-scope选项设定配额的范围。选项为bucket和user。
2.15.19. 获取用户配额 复制链接链接已复制到粘贴板!
要获得配额,用户必须具有带有 read 权限的 users 能力。
语法
GET /admin/user?quota&uid=UID"a-type=user
GET /admin/user?quota&uid=UID"a-type=user
2.15.20. 设置用户配额 复制链接链接已复制到粘贴板!
要获得配额,用户必须具有带有 write 权限的 users 能力。
语法
PUT /admin/user?quota&uid=UID"a-type=user
PUT /admin/user?quota&uid=UID"a-type=user
内容必须包括配额设置的 JSON 表示,如相应读取操作中编码。
2.15.21. 获取存储桶配额 复制链接链接已复制到粘贴板!
获取有关现有 bucket 子集的信息。如果在没有 bucket 的情况下指定 uid,则返回属于该用户的所有存储桶。如果只指定 存储桶,则会检索该特定存储桶的信息。
功能
`buckets=read`
`buckets=read`
语法
GET /admin/bucket?format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
请求参数
bucket- 描述
- 用于返回信息的存储桶。
- Type
- 字符串
- 示例
-
foo_bucket - 必需
- 否
uid- 描述
- 检索存储桶信息的用户。
- Type
- 字符串
- 示例
-
foo_user - 必需
- 否
stats- 描述
- 返回存储桶统计信息。
- Type
- 布尔值
- 示例
- True [False]
- 必需
- 否
响应实体
stats- 描述
- 每个存储桶信息。
- Type
- Container
- 父
- 不适用
bucket- 描述
- 包含一个或多个 bucket 容器的列表。
- Type
- Container
- 父
- 不适用
bucket- 描述
- 用于单一存储桶信息的容器。
- Type
- Container
- 父
-
bucket
名称- 描述
- bucket 的名称。
- Type
- 字符串
- 父
-
bucket
pool- 描述
- bucket 存储在其中的池。
- Type
- 字符串
- 父
-
bucket
id- 描述
- 唯一的存储桶 ID。
- Type
- 字符串
- 父
-
bucket
marker- 描述
- 内部存储桶标签。
- Type
- 字符串
- 父
-
bucket
owner- 描述
- bucket 所有者的用户 ID。
- Type
- 字符串
- 父
-
bucket
usage- 描述
- 存储使用信息。
- Type
- Container
- 父
-
bucket
index- 描述
- bucket 索引的状态。
- Type
- 字符串
- 父
-
bucket
如果成功,请求会返回带有存储桶信息的 bucket 容器。
特殊错误响应
IndexRepairFailed- 描述
- bucket 索引修复失败。
- 代码
- 409 冲突
2.15.22. 设置存储桶配额 复制链接链接已复制到粘贴板!
要获得配额,用户必须具有带有 write 权限的 users 能力。
语法
PUT /admin/user?quota&uid=UID"a-type=bucket
PUT /admin/user?quota&uid=UID"a-type=bucket
内容必须包括配额设置的 JSON 表示,如相应读取操作中编码。
2.15.23. 获取用法信息 复制链接链接已复制到粘贴板!
请求带宽使用量信息。
功能
`usage=read`
`usage=read`
语法
GET /admin/usage?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/usage?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
请求参数
uid- 描述
- 请求信息的用户。
- Type
- 字符串
- 必需
- 是
start- 描述
-
数据请求启动的时间,以及可选。例如,
2012-09-25 16:00:00。 - Type
- 字符串
- 必填
- 否
end- 描述
-
数据请求结束的时间,以及可选。例如,
2012-09-25 16:00:00。 - Type
- 字符串
- 必填
- 否
show-entries- 描述
- 指定是否应返回数据条目。
- Type
- 布尔值
- 必需
- 否
show-summary- 描述
- 指定是否应返回数据条目。
- Type
- 布尔值
- 必需
- 否
响应实体
usage- 描述
- 用于用法信息的容器。
- Type
- Container
条目- 描述
- 用于用法条目信息的容器。
- Type
- Container
user- 描述
- 用于用户数据信息的容器。
- Type
- Container
owner- 描述
- 拥有存储桶的用户的名称。
- Type
- 字符串
bucket- 描述
- bucket 名称。
- Type
- 字符串
time- 描述
- 指定数据的时间下限,将舍入到第一个相关小时的开头。
- Type
- 字符串
epoch- 描述
-
自
1/1/1970起的时间(以秒为单位)。 - Type
- 字符串
类别- 描述
- 用于统计类别的容器。
- Type
- Container
entry- 描述
- 用于统计条目的容器。
- Type
- Container
category- 描述
- 提供统计的请求类别的名称。
- Type
- 字符串
bytes_sent- 描述
- Ceph 对象网关发送的字节数。
- Type
- 整数
bytes_received- 描述
- Ceph 对象网关收到的字节数。
- Type
- 整数
ops- 描述
- 操作数量。
- Type
- 整数
successful_ops- 描述
- 成功操作数量。
- Type
- 整数
summary- 描述
- 成功操作数量。
- Type
- Container
total- 描述
- 容器用于统计摘要聚合的总数。
- Type
- Container
如果成功,响应包含请求的信息。
2.15.24. 删除使用信息 复制链接链接已复制到粘贴板!
删除使用信息。如果未指定日期,可删除所有使用信息。
功能
`usage=write`
`usage=write`
语法
DELETE /admin/usage?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/usage?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
请求参数
uid- 描述
- 请求信息的用户。
- Type
- 字符串
- 示例
-
foo_user - 必需
- 是
start- 描述
-
数据请求启动的时间,以及可选。例如,
2012-09-25 16:00:00。 - Type
- 字符串
- 示例
-
2012-09-25 16:00:00 - 必需
- 否
end- 描述
-
数据请求结束的时间,以及可选。例如,
2012-09-25 16:00:00。 - Type
- 字符串
- 示例
-
2012-09-25 16:00:00 - 必需
- 否
remove-all- 描述
-
未指定
uid时需要此项以确认删除多用户数据。 - Type
- 布尔值
- 示例
- True [False]
- 必需
- 否
2.15.25. 标准错误响应 复制链接链接已复制到粘贴板!
以下列表详细介绍了标准错误响应及其描述。
AccessDenied- 描述
- 拒绝访问。
- 代码
- 403 Forbidden
InternalError- 描述
- 内部服务器错误.
- 代码
- 500 内部服务器错误
NoSuchUser- 描述
- 用户不存在。
- 代码
- 404 not Found
NoSuchBucket- 描述
- bucket 不存在。
- 代码
- 404 not Found
NoSuchKey- 描述
- 没有这样的访问密钥。
- 代码
- 404 not Found