2.15. バケット通知


ストレージ管理者は、これらの API を使用してバケット通知メカニズムの設定および制御インターフェイスを提供できます。API トピックは、特定のエンドポイントの定義が含まれる名前が付けられたオブジェクトです。バケット通知では、トピックを特定のバケットに関連付けます。S3 バケット操作 セクションでは、バケット通知の詳細を説明しています。

注記

すべてのトピックアクションでは、パラメーターは URL エンコードされ、application/x-www-form-urlencoded コンテンツタイプを使用してメッセージのボディーで送信されます。

注記

トピックの更新を有効にするには、トピックにすでに関連付けられているバケット通知を再作成する必要があります。

前提条件

  • Ceph Object Gateway 上にバケット通知を作成します。

2.15.1. バケット通知の概要

バケット通知により、バケットで特定のイベントが発生した場合に、Ceph Object Gateway から情報を送る方法が提供されます。バケット通知は HTTP、AMQP0.9.1、および Kafka エンドポイントに送信できます。特定バケットおよび特定のトピック上のイベントのバケット通知を送信するために、通知エントリーを作成する必要があります。バケット通知は、イベントタイプのサブセットに作成することも、デフォルトですべてのイベントタイプに対して作成できます。バケット通知は、キーの接頭辞または接尾辞、キーに一致する正規表現、オブジェクトに割り当てられたメタデータ属性、またはオブジェクトタグに基づいてイベントをフィルタリングできます。バケット通知には、バケット通知メカニズムの設定および制御インターフェイスを提供する REST API があります。

オブジェクトがゾーンに同期されるときにバケット通知を送信すると、外部システムはオブジェクトレベルでゾーンの同期ステータスに関する情報を取得できるようになります。バケット通知イベントタイプ s3:ObjectSynced:* および s3:ObjectSynced:Created は、バケット通知メカニズムを介して設定されている場合、オブジェクトの同期が成功すると、同期された RGW から通知イベントを送信します。トピックと通知設定は両方とも、通知イベントの送信元のゾーンごとに個別に実行する必要があります。

2.15.2. 永続通知

永続的な通知により、Ceph Object Gateway からトピックで設定されたエンドポイントへの通知の信頼性の高い非同期配信が可能になります。エンドポイントへの配信は、リクエスト中に同期的に実行されるため、通常の通知も信頼性があります。永続的な通知により、Ceph Object Gateway はエンドポイントがダウンした場合や、操作中にネットワークの問題がある場合でも、通知は送信を再試行します。これは、エンドポイントに正常に配信されない場合に通知が再試行されます。通知は、通知操作に関連するその他のアクションがすべて成功する場合にのみ送信されます。エンドポイントが長期間ダウンすると、通知キューがいっぱいになり、これらのエンドポイントの通知が設定された S3 操作が失敗します。

注記

kafka-ack-level=none を使用すると、メッセージの失敗が示されないため、ブローカーが停止している間に送信されたメッセージは、ブローカーの再起動時に再試行されません。ブローカーがもう一度開始されると、新しい通知のみが表示されます。

2.15.3. トピックの作成

バケット通知を作成する前に、トピックを作成できます。トピックは Simple Notification Service (SNS) エンティティーで、すべてのトピック操作 (つまり createdeletelist、および get) は SNS 操作です。トピックには、バケット通知の作成時に使用されるエンドポイントパラメーターが必要です。リクエストが正常に行われると、レスポンスには、バケット通知要求でこのトピックを参照するために後で使用できるトピックの Amazon Resource Name (ARN) が含まれます。

注記

topic_arn はバケット通知設定を提供し、トピックの作成後に生成されます。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ルートレベルのアクセス。
  • Ceph Object Gateway のインストール
  • ユーザーアクセスキーおよびシークレットキー。
  • エンドポイントパラメーター。

手順

  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]

    リクエストパラメーターを以下に示します。

    • Endpoint: 通知を送信するエンドポイントの URL。
    • OpaqueData: 不透明なデータはトピック設定で設定され、トピックによって発生するすべての通知に追加されます。
    • persistent: このエンドポイントへの通知が永続的 (非同期) であるかを示します。デフォルト値は false です。
    • HTTP エンドポイント:

      • URL: https://FQDN:PORT
      • ポートのデフォルト: HTTP または HTTPS にそれぞれ 80 または 443 を使用します。
      • verify-ssl: サーバー証明書がクライアントによって検証されているかどうかを示します。デフォルトでは true です。
    • AMQP0.9.1 エンドポイント:

      • URL: amqp://USER:PASSWORD@FQDN:PORT[/VHOST].
      • ユーザーおよびグループのデフォルト値はそれぞれ guestguest です。
      • ユーザーおよびパスワードの詳細は HTTPS 経由で提供する必要があります。そうしないと、トピック作成要求は拒否されます。
      • Port のデフォルト値 は 5672 です。
      • vhost のデフォルトは “/” です。
      • amqp-exchange: 交換は存在し、トピックに基づいてメッセージをルーティングできる必要があります。これは AMQP0.9.1 の必須パラメーターです。同じエンドポイントを参照するさまざまなトピックが同じ交換を使用する必要があります。
      • amqp-ack-level: 最終宛先に送信される前にメッセージがブローカーで永続化される可能性があるため、終了確認は不要です。承認メソッドは 3 つあります。

        • none: ブローカーに送信された場合にメッセージが 配信されている と見なされます。
        • broker: デフォルトでは、メッセージはブローカーによって確認応答されると 配信されている と見なされます。
        • routable: ブローカーがコンシューマーにルーティングできる場合、メッセージは 配信されている と見なされます。

          注記

          特定のパラメーターのキーと値は、同じ行または特定の順序で存在する必要はありませんが、同じインデックスを使用する必要があります。属性インデックスは、特定の値から順番にしたり、開始したりする必要はありません。

          注記

          topic-name は AMQP トピックに使用されます。

    • Kafka エンドポイント:

      • URL: kafka://USER:PASSWORD@FQDN:PORT.
      • use-ssl がデフォルトで false に設定される場合。use-ssltrue に設定されている場合は、ブローカーへの接続にセキュアな接続が使用されます。
      • ca-location が指定され、セキュアな接続が使用される場合は、ブローカーを認証するために、デフォルトの CA ではなく、指定された CA が使用されます。
      • ユーザーおよびパスワードは HTTP[S] でのみ提供できます。そうしないと、トピック作成要求は拒否されます。
      • ユーザーおよびパスワードは use-ssl とのみ提供でき、ブローカーへの接続に失敗していました。
      • Port のデフォルト値 は 9092 です。
      • kafka-ack-level: 最終宛先に送信される前にメッセージがブローカーで永続化される可能性があるため、終了確認は不要です。承認メソッドは 2 つあります。

        • none: ブローカーに送信された場合にメッセージが 配信されている と見なされます。
        • broker: デフォルトでは、メッセージはブローカーによって確認応答されると 配信されている と見なされます。

応答形式の例を以下に示します。

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

注記

レスポンスのトピックの Amazon Resource Name (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 Object Gateway のインストール
  • ユーザーアクセスキーおよびシークレットキー。
  • エンドポイントパラメーター。

手順

  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 経由で行う必要があります。それ以外の場合、トピックの取得要求は拒否されます。

        • EndPointArgs: エンドポイント引数。
        • EndpointTopic: エンドポイントに送信されるトピック名は、上記の例のトピック名とは異なる場合があります。
        • HasStoredSecret: エンドポイントの URL にユーザーおよびパスワード情報が含まれる場合に true
        • 永続: トピックが永続する場合は true
    • TopicArn: Topic ARN。
    • OpaqueData: これはトピック上の不透明なデータセットです。

2.15.5. トピックのリスト表示

ユーザーが定義したトピックをリスト表示します。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ルートレベルのアクセス。
  • Ceph Object Gateway のインストール
  • ユーザーアクセスキーおよびシークレットキー。
  • エンドポイントパラメーター。

手順

  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 にユーザーおよびパスワード情報が含まれる場合は、トピックのいずれかで要求を行う必要があります。そうしないと、トピックリストの要求は拒否されます。

2.15.6. トピックの削除

削除したトピックを削除すると、操作はなく、失敗は発生しません。

前提条件

  • 稼働中の Red Hat Ceph Storage クラスターがある。
  • ルートレベルのアクセス。
  • Ceph Object Gateway のインストール
  • ユーザーアクセスキーおよびシークレットキー。
  • エンドポイントパラメーター。

手順

  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 Object Gateway ノードへのルートレベルのアクセスがある。

手順

  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 Object Gateway が設定されている。

手順

  • すべてのバケット通知設定をリスト表示します。

    構文

    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 Object Gateway によって行われる操作に関する情報を保持し、選択したエンドポイント (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: イベントのタイプ。ObjectCreatedObjectRemoved、または ObjectLifecycle:Expiration のいずれかになります。
  • userIdentity.principalId: イベントを開始したユーザーの ID。
  • requestParameters.sourceIPAddress: イベントをトリガーしたクライアントの IP アドレス。このフィールドはサポートされません。
  • responseElements.x-amz-request-id: イベントをトリガーしたリクエスト ID。
  • responseElements.x_amz_id_2: イベントがトリガーされた Ceph Object Gateway の IP アドレスID 形式は RGWID-ZONE-ZONEGROUP です。
  • s3.configurationId: イベントを作成した通知 ID。
  • s3.bucket.name: バケットの名前。
  • s3.bucket.ownerIdentity.principalId: バケットの所有者。
  • s3.bucket.arn: バケットの Amazon Resource Name(ARN)。
  • s3.bucket.id: バケットのアイデンティティー。
  • s3.object.key: オブジェクトキー。
  • s3.object.size: オブジェクトのサイズ
  • s3.object.eTag: オブジェクト etag。
  • s3.object.version: バージョン化されたバケットのオブジェクトバージョン。
  • s3.object.sequencer: 16 進数形式でオブジェクトごとの変更識別子を増加させます。
  • 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. バケット情報の取得

既存のバケットのサブセットに関する情報を取得します。uidbucket なしで指定されると、そのユーザーに属するすべてのバケットが返されます。bucket のみが指定されている場合は、その特定のバケットの情報を取得します。

ケイパビリティー

`buckets=read`

構文

GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
情報を返すバケット。
String
foo_bucket
必須
いいえ
uid
説明
バケット情報を取得するユーザー。
String
foo_user
必須
いいえ
stats
説明
バケットの統計を返します。
Boolean
True [False]
必須
いいえ

レスポンスエンティティー

stats
説明
バケットごとの情報
コンテナー
Parent
該当なし
buckets
説明
1 つ以上のバケットコンテナーのリストが含まれます。
コンテナー
Parent
buckets
bucket
説明
単一バケット情報用のコンテナー。
コンテナー
Parent
buckets
name
説明
バケットの名前。
String
Parent
bucket
pool
説明
バケットが保存されているプール。
String
Parent
bucket
id
説明
一意のバケット ID。
String
Parent
bucket
marker
説明
内部バケットタグ。
String
Parent
bucket
owner
説明
バケット所有者のユーザー ID。
String
Parent
bucket
使用方法
説明
ストレージの使用情報。
コンテナー
Parent
bucket
index
説明
バケットインデックスのステータス。
String
Parent
bucket

成功すると、要求はバケット情報と共にバケットコンテナーを返します。

特別なエラーレスポンス

IndexRepairFailed
説明
バケットインデックスの修復に失敗しました。
コード
409 Conflict

2.15.12. バケットインデックスを確認します。

既存のバケットのインデックスを確認します。

注記

check-objects で複数パートオブジェクトアカウンティングを確認するには、fix を True に設定する必要があります。

ケイパビリティー

buckets=write

構文

GET /admin/bucket?index&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
情報を返すバケット。
String
foo_bucket
必須
はい
check-objects
説明
複数パートオブジェクトアカウンティングを確認します。
Boolean
True [False]
必須
いいえ
fix
説明
また、チェック時にバケットインデックスも修正します。
Boolean
False [False]
必須
いいえ

レスポンスエンティティー

index
説明
バケットインデックスのステータス。
String

特別なエラーレスポンス

IndexRepairFailed
説明
バケットインデックスの修復に失敗しました。
コード
409 Conflict

2.15.13. バケットの削除

既存のバケットを削除します。

ケイパビリティー

`buckets=write`

構文

DELETE /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
削除するバケット。
String
foo_bucket
必須
はい
purge-objects
説明
削除する前に、バケットのオブジェクトを削除してください。
Boolean
True [False]
必須
いいえ

レスポンスエンティティー

なし。

特別なエラーレスポンス

BucketNotEmpty
説明
空でないバケットの削除を試行しました。
コード
409 Conflict
ObjectRemovalFailed
説明
オブジェクトを削除できません。
コード
409 Conflict

2.15.16. バケットまたはオブジェクトポリシーを取得する

オブジェクトまたはバケットのポリシーを読み取ります。

ケイパビリティー

`buckets=read`

構文

GET /admin/bucket?policy&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
ポリシーを読み取るバケット。
String
foo_bucket
必須
はい
object
説明
ポリシーの読み取り元となるオブジェクト。
String
foo.txt
必須
いいえ

レスポンスエンティティー

policy
説明
アクセス制御ポリシー。
コンテナー
Parent
該当なし

成功した場合には、オブジェクトまたはバケットポリシーを返します。

特別なエラーレスポンス

IncompleteBody
説明
バケットポリシー要求にバケットが指定されていないか、オブジェクトがオブジェクトポリシー要求に指定されていません。
コード
400 Bad Request

2.15.17. オブジェクトの削除

既存のオブジェクトを削除します。

注記

所有者を一時停止せずに指定する必要はありません。

ケイパビリティー

`buckets=write`

構文

DELETE /admin/bucket?object&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
削除されるオブジェクトを含むバケット。
String
foo_bucket
必須
はい
object
説明
削除するオブジェクト。
String
foo.txt
必須
はい

レスポンスエンティティー

なし。

特別なエラーレスポンス

NoSuchObject
説明
指定されたオブジェクトは存在しません。
コード
404 Not Found
ObjectRemovalFailed
説明
オブジェクトを削除できません。
コード
409 Conflict

2.15.18. Quotas

管理操作 API を使用すると、ユーザーおよびユーザーが所有するバケットにクォータを設定できます。クォータには、バケットのオブジェクトの最大数と、メガバイト単位のストレージの最大サイズが含まれます。

クォータを表示するには、ユーザーに users=read ケイパビリティーが必要です。クォータを設定、変更、または無効にするには、ユーザーに users=write ケイパビリティーが必要です。

クォータの有効なパラメーターには以下が含まれます。

  • Bucket: bucket オプションでは、ユーザーが所有するバケットのクォータを指定できます。
  • Maximum Objects: 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. バケットクォータの取得

既存のバケットのサブセットに関する情報を取得します。uidbucket なしで指定されると、そのユーザーに属するすべてのバケットが返されます。bucket のみが指定されている場合は、その特定のバケットの情報を取得します。

ケイパビリティー

`buckets=read`

構文

GET /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

bucket
説明
情報を返すバケット。
String
foo_bucket
必須
いいえ
uid
説明
バケット情報を取得するユーザー。
String
foo_user
必須
いいえ
stats
説明
バケットの統計を返します。
Boolean
True [False]
必須
いいえ

レスポンスエンティティー

stats
説明
バケットごとの情報
コンテナー
Parent
該当なし
buckets
説明
1 つ以上のバケットコンテナーのリストが含まれます。
コンテナー
Parent
該当なし
bucket
説明
単一バケット情報用のコンテナー。
コンテナー
Parent
buckets
name
説明
バケットの名前。
String
Parent
bucket
pool
説明
バケットが保存されているプール。
String
Parent
bucket
id
説明
一意のバケット ID。
String
Parent
bucket
marker
説明
内部バケットタグ。
String
Parent
bucket
owner
説明
バケット所有者のユーザー ID。
String
Parent
bucket
使用方法
説明
ストレージの使用情報。
コンテナー
Parent
bucket
index
説明
バケットインデックスのステータス。
String
Parent
bucket

成功すると、要求はバケット情報と共にバケットコンテナーを返します。

特別なエラーレスポンス

IndexRepairFailed
説明
バケットインデックスの修復に失敗しました。
コード
409 Conflict

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
説明
情報が要求されるユーザー。
String
必須
はい
start
説明
データリクエストが開始した時点の日付 (任意で時刻)。(例: 2012-09-25 16:00:00)。
String
必須
いいえ
end
説明
データリクエストが終了した時点の日付 (任意で時刻)。(例: 2012-09-25 16:00:00)。
String
必須
いいえ
show-entries
説明
データエントリーを返すかどうかを指定します。
Boolean
必須
いいえ
show-summary
説明
データエントリーを返すかどうかを指定します。
Boolean
必須
いいえ

レスポンスエンティティー

使用方法
説明
使用方法に関する情報用のコンテナー。
コンテナー
エントリー
説明
使用方法エントリー情報のコンテナー。
コンテナー
user
説明
ユーザーデータ情報のコンテナー
コンテナー
owner
説明
バケットを所有するユーザーの名前。
String
bucket
説明
バケット名。
String
time
説明
データが指定されている時間の下限 (最初の関連する時間の開始に丸められます)。
String
epoch
説明
1/1/1970 からの経過時間 (秒単位)。
String
categories
説明
統計情報カテゴリーのコンテナー。
コンテナー
entry
説明
stats エントリーのコンテナー。
コンテナー
category
説明
統計が提供される要求カテゴリーの名前。
String
bytes_sent
説明
Ceph Object Gateway によって送信されるバイト数。
Integer
bytes_received
説明
Ceph Object Gateway が受け取るバイト数。
Integer
ops
説明
演算の数。
Integer
successful_ops
説明
成功した操作の数。
Integer
summary
説明
成功した操作の数。
コンテナー
total
説明
統計情報の概要集計合計のコンテナー。
コンテナー

成功すると、レスポンスには要求された情報が含まれます。

2.15.24. 使用方法に関する情報を削除

使用方法に関する情報を削除します。日付を指定しないと、すべての使用情報が削除されます。

ケイパビリティー

`usage=write`

構文

DELETE /admin/usage?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME

リクエストパラメーター

uid
説明
情報が要求されるユーザー。
String
foo_user
必須
はい
start
説明
データリクエストが開始した時点の日付 (任意で時刻)。(例: 2012-09-25 16:00:00)。
String
2012-09-25 16:00:00
必須
いいえ
end
説明
データリクエストが終了した時点の日付 (任意で時刻)。(例: 2012-09-25 16:00:00)。
String
2012-09-25 16:00:00
必須
いいえ
remove-all
説明
マルチユーザーデータの削除を確認するために uid が指定されていない場合に必須です。
Boolean
True [False]
必須
いいえ

2.15.25. 標準エラーレスポンス

以下のリストは、標準的なエラーレスポンスと説明の詳細を示しています。

AccessDenied
説明
アクセスが拒否されました。
コード
403 Forbidden
InternalError
説明
内部サーバーエラー。
コード
500 Internal Server Error
NoSuchUser
説明
ユーザーが存在しません。
コード
404 Not Found
NoSuchBucket
説明
バケットが存在しません。
コード
404 Not Found
NoSuchKey
説明
そのようなアクセスキーはありません。
コード
404 Not Found
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.