2.15. bucket 通知


作为存储管理员,您可以使用这些 API 为存储桶通知机制提供配置和部署接口。API 主题是命名的对象,其中包含特定端点的定义。bucket 通知将主题与特定 bucket 关联。S3 bucket operations 部分提供有关存储桶通知的更多详情。

注意

在所有主题操作中,参数都是 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:Created,在成功同步对象时从同步 RGW 中发送通知事件。在发送通知事件的每个区域中,应单独执行主题和通知配置。

2.15.2. 持久性通知

永久通知支持可靠和异步将通知从 Ceph 对象网关传输到主题中配置的端点。常规通知也可靠,因为发送到端点的发送是在请求期间同步执行的。使用持久通知时,Ceph 对象网关即使端点停机或操作过程中存在网络问题,即使未成功传送到端点,也会重试发送通知。只有在与通知的操作相关的所有其他操作成功后,才会发送通知。如果端点在较长时间内停机,通知队列会填充,并且为这些端点配置了通知的 S3 操作将失败。

注意

使用 kafka-ack-level=none 时,没有指示消息失败,因此当代理再次上线时,发送的消息不会重试。再次设置代理后,只会看到新的通知。

2.15.3. 创建主题

您可以在创建存储桶通知前创建主题。主题是 Simple Notification Service (SNS)实体和所有主题操作,即 创建删除列出get 是 SNS 操作。主题需要具有创建存储桶通知时使用的端点参数。请求成功后,响应中包含稍后可用来在存储桶通知请求中引用此主题的 Amazon Resource Name(ARN)主题。

注意

topic_arn 提供存储桶通知配置,并在创建主题后生成。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 根级别访问权限.
  • 安装 Ceph 对象网关.
  • 用户 access key 和 secret key。
  • 端点参数.

流程

  1. 创建带有请求格式的主题:

    语法

    POST
    Action=CreateTopic
    &Name=TOPIC_NAME
    [&Attributes.entry.1.key=amqp-exchange&Attributes.entry.1.value=EXCHANGE]
    [&Attributes.entry.2.key=amqp-ack-level&Attributes.entry.2.value=none|broker|routable]
    [&Attributes.entry.3.key=verify-ssl&Attributes.entry.3.value=true|false]
    [&Attributes.entry.4.key=kafka-ack-level&Attributes.entry.4.value=none|broker]
    [&Attributes.entry.5.key=use-ssl&Attributes.entry.5.value=true|false]
    [&Attributes.entry.6.key=ca-location&Attributes.entry.6.value=FILE_PATH]
    [&Attributes.entry.7.key=OpaqueData&Attributes.entry.7.value=OPAQUE_DATA]
    [&Attributes.entry.8.key=push-endpoint&Attributes.entry.8.value=ENDPOINT]
    [&Attributes.entry.9.key=persistent&Attributes.entry.9.value=true|false]

    以下是请求参数:

    • 端点 :要将通知发送到的端点的 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].
      • 用户和密码分别默认为: guestguest
      • 应当通过 HTTPS 提供用户和密码详细信息,否则主题创建请求将被拒绝。
      • 端口默认为: 5672。
      • vhost 默认为:"/"
      • amqp-exchange :该交换必须存在,并且能够根据主题路由消息。这是用于 AMQP0.9.1 的强制参数。指向同一端点的不同主题必须使用相同的交换。
      • AMQP-ack 级别: 不需要端到端确认,因为消息可能会在代理中被传送到最终目的地前保留。有三个确认方法:

        • none :当发送到代理,则消息被视为已发送
        • 代理 :默认情况下,如果代理确认,则消息被视为 已发送
        • 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-ack 级别 :不需要结束确认,因为消息可能会在代理中被传送到最终目的地前保留。存在两种确认方法:

        • none :当发送到代理,则消息被视为已发送
        • 代理 :默认情况下,如果代理确认,则消息被视为 已发送

以下是响应格式的示例:

示例

<CreateTopicResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
    <CreateTopicResult>
        <TopicArn></TopicArn>
    </CreateTopicResult>
    <ResponseMetadata>
        <RequestId></RequestId>
    </ResponseMetadata>
</CreateTopicResponse>

注意

响应中的 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'}) "

2.15.4. 获取主题信息

返回有关特定主题的信息。如果提供,这可包括端点信息。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 根级别访问权限.
  • 安装 Ceph 对象网关.
  • 用户 access key 和 secret key。
  • 端点参数.

流程

  1. 使用以下请求格式获取主题信息:

    语法

    POST
    Action=GetTopic
    &TopicArn=TOPIC_ARN

    以下是响应格式的示例:

    <GetTopicResponse>
    <GetTopicRersult>
    <Topic>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    <HasStoredSecret></HasStoredSecret>
    <Persistent></Persistent>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </Topic>
    </GetTopicResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </GetTopicResponse>

    以下是标签和定义:

    • 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。
  • 端点参数.

流程

  1. 使用以下请求格式列出主题信息:

    语法

    POST
    Action=ListTopics

    以下是响应格式的示例:

    <ListTopicdResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ListTopicsRersult>
    <Topics>
    <member>
    <User></User>
    <Name></Name>
    <EndPoint>
    <EndpointAddress></EndpointAddress>
    <EndpointArgs></EndpointArgs>
    <EndpointTopic></EndpointTopic>
    </EndPoint>
    <TopicArn></TopicArn>
    <OpaqueData></OpaqueData>
    </member>
    </Topics>
    </ListTopicsResult>
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </ListTopicsResponse>
    注意

    如果端点 URL 包含用户和密码信息,在任何主题中,则必须通过 HTTPS 进行请求。否则,主题列表请求将被拒绝。

2.15.6. 删除主题

删除删除的主题会导致没有操作,且不是失败。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 根级别访问权限.
  • 安装 Ceph 对象网关.
  • 用户 access key 和 secret key。
  • 端点参数.

流程

  1. 使用以下请求格式删除主题:

    语法

    POST
    Action=DeleteTopic
    &TopicArn=TOPIC_ARN

    以下是响应格式的示例:

    <DeleteTopicResponse xmlns="https://sns.amazonaws.com/doc/2020-03-31/">
    <ResponseMetadata>
    <RequestId></RequestId>
    </ResponseMetadata>
    </DeleteTopicResponse>

2.15.7. 使用命令行界面进行主题管理

您可以使用命令行界面列出、获取和删除主题。

先决条件

  • Ceph 对象网关节点的根级别访问权限.

流程

  1. 获取用户的所有主题的列表:

    语法

    radosgw-admin topic list --uid=USER_ID

    示例

    [root@rgw ~]# radosgw-admin topic list --uid=example

  2. 获取特定主题的配置:

    语法

    radosgw-admin topic get --uid=USER_ID --topic=TOPIC_NAME

    示例

    [root@rgw ~]# radosgw-admin topic get --uid=example --topic=example-topic

  3. 删除特定主题:

    语法

    radosgw-admin topic rm --uid=USER_ID --topic=TOPIC_NAME

    示例

    [root@rgw ~]# radosgw-admin topic rm --uid=example --topic=example-topic

2.15.8. 管理通知配置

您可以使用命令行界面列出、获取和删除存储桶的通知配置。

先决条件

  • 一个正在运行的 Red Hat Ceph Storage 集群。
  • 配置 Ceph 对象网关。

流程

  • 列出所有存储桶通知配置:

    语法

    radosgw-admin notification list --bucket=BUCKET_NAME

    示例

    [root@host04 ~]# radosgw-admin notification list --bucket bkt2
    {
        "notifications": [
            {
                "TopicArn": "arn:aws:sns:default::topic1",
                "Id": "notif1",
                "Events": [
                    "s3:ObjectCreated:*",
                    "s3:ObjectRemoved:*"
                ],
                "Filter": {
                    "S3Key": {},
                    "S3Metadata": {},
                    "S3Tags": {}
                }
            },
            {
                "TopicArn": "arn:aws:sns:default::topic1",
                "Id": "notif2",
                "Events": [
                    "s3:ObjectSynced:*"
                ],
                "Filter": {
                    "S3Key": {},
                    "S3Metadata": {},
                    "S3Tags": {}
                }
            }
        ]
    }

  • 获取存储桶通知配置:

    语法

    radosgw-admin notification get --bucket BUCKET_NAME --notification-id NOTIFICATION_ID

    示例

    [root@host04 ~]# radosgw-admin notification get --bucket bkt2 --notification-id notif2
    {
        "TopicArn": "arn:aws:sns:default::topic1",
        "Id": "notif2",
        "Events": [
            "s3:ObjectSynced:*"
        ],
        "Filter": {
            "S3Key": {},
            "S3Metadata": {},
            "S3Tags": {}
        }
    }

  • 删除特定的存储桶通知配置:

    语法

    radosgw-admin notification rm --bucket BUCKET_NAME [--notification-id NOTIFICATION_ID]

    在这里,NOTIFICATION_ID 是可选的。如果没有指定,该命令会删除该存储桶的所有通知配置。

    示例

    [root@host04 ~]# radosgw-admin notification rm --bucket bkt2 --notification-id notif1

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

示例

{"Records":[
    {
        "eventVersion":"2.1",
        "eventSource":"ceph:s3",
        "awsRegion":"us-east-1",
        "eventTime":"2019-11-22T13:47:35.124724Z",
        "eventName":"ObjectCreated:Put",
        "userIdentity":{
            "principalId":"tester"
        },
        "requestParameters":{
            "sourceIPAddress":""
        },
        "responseElements":{
            "x-amz-request-id":"503a4c37-85eb-47cd-8681-2817e80b4281.5330.903595",
            "x-amz-id-2":"14d2-zone1-zonegroup1"
        },
        "s3":{
            "s3SchemaVersion":"1.0",
            "configurationId":"mynotif1",
            "bucket":{
                "name":"mybucket1",
                "ownerIdentity":{
                    "principalId":"tester"
                },
                "arn":"arn:aws:s3:us-east-1::mybucket1",
                "id":"503a4c37-85eb-47cd-8681-2817e80b4281.5332.38"
            },
            "object":{
                "key":"myimage1.jpg",
                "size":"1024",
                "eTag":"37b51d194a7513e45b56f6524f2d51f2",
                "versionId":"",
                "sequencer": "F7E6D75DC742D108",
                "metadata":[],
                "tags":[]
            }
        },
        "eventId":"",
        "opaqueData":"me@example.com"
    }
]}

以下是事件记录密钥及其定义:

  • awsRegion: Zonegroup。
  • eventTime: 指示触发事件的时间的时间戳。
  • eventName :事件类型。它可以是 ObjectCreatedObjectRemovedObjectLifecycle: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
注意

在多部分上传中,进程结束时会发送 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:NonCurrent
  • s3:ObjectSynced:Create

2.15.11. 获取存储桶信息

获取有关现有 bucket 子集的信息。如果在没有 bucket 的情况下指定 uid,则返回属于该用户的所有存储桶。如果只指定 存储桶,则会检索该特定存储桶的信息。

功能

`buckets=read`

语法

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

请求参数

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`

语法

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.16. 获取存储桶或对象策略

对一个对象或 bucket 的读取策略。

功能

`buckets=read`

语法

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`

语法

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 选项设定配额的范围。选项为 bucketuser

2.15.19. 获取用户配额

要获得配额,用户必须具有带有 read 权限的 users 能力。

语法

GET /admin/user?quota&uid=UID&quota-type=user

2.15.20. 设置用户配额

要获得配额,用户必须具有带有 write 权限的 users 能力。

语法

PUT /admin/user?quota&uid=UID&quota-type=user

内容必须包括配额设置的 JSON 表示,如相应读取操作中编码。

2.15.21. 获取存储桶配额

获取有关现有 bucket 子集的信息。如果在没有 bucket 的情况下指定 uid,则返回属于该用户的所有存储桶。如果只指定 存储桶,则会检索该特定存储桶的信息。

功能

`buckets=read`

语法

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&quota-type=bucket

内容必须包括配额设置的 JSON 表示,如相应读取操作中编码。

2.15.23. 获取用法信息

请求带宽使用量信息。

功能

`usage=read`

语法

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
entries
描述
用于用法条目信息的容器。
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`

语法

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
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.