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 ObjectGateway からトピックで設定されたエンドポイントへの通知の信頼性の高い非同期配信が可能になります。エンドポイントへの配信は、リクエスト中に同期的に実行されるため、通常の通知も信頼性があります。永続的な通知により、Ceph Object Gateway はエンドポイントがダウンした場合や、操作中にネットワークの問題がある場合でも、通知は送信を再試行します。これは、エンドポイントに正常に配信されない場合に通知が再試行されます。通知は、通知操作に関連するその他のアクションがすべて成功する場合にのみ送信されます。エンドポイントが長期間ダウンすると、通知キューがいっぱいになり、これらのエンドポイントの通知が設定された S3 操作が失敗します。
kafka-ack-level=none
を使用すると、メッセージの失敗が示されないため、ブローカーが停止している間に送信されたメッセージは、ブローカーの再起動時に再試行されません。ブローカーがもう一度開始されると、新しい通知のみが表示されます。
2.15.3. トピックの作成
バケット通知を作成する前に、トピックを作成できます。トピックは Simple Notification Service (SNS) エンティティーで、すべてのトピック操作 (つまり create
、delete
、list
、および get
) は SNS 操作です。トピックには、バケット通知の作成時に使用されるエンドポイントパラメーターが必要です。リクエストが正常に行われると、レスポンスには、バケット通知要求でこのトピックを参照するために後で使用できるトピックの Amazon Resource Name (ARN) が含まれます。
topic_arn
はバケット通知設定を提供し、トピックの作成後に生成されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ルートレベルのアクセス。
- Ceph Object Gateway のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピックを作成します。
構文
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]. -
ユーザーおよびグループのデフォルト値はそれぞれ
guest
とguest
です。 - ユーザーおよびパスワードの詳細は 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-ssl
がtrue
に設定されている場合は、ブローカーへの接続にセキュアな接続が使用されます。 -
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 のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピック情報を取得します。
構文
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 のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピック情報をリスト表示します。
構文
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 のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピックを削除します。
構文
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 ノードへのルートレベルのアクセスがある。
手順
ユーザーのすべてのトピックのリストを取得するには、以下を実行します。
構文
radosgw-admin topic list --uid=USER_ID
例
[root@rgw ~]# radosgw-admin topic list --uid=example
特定のトピックの設定を取得するには、以下を実行します。
構文
radosgw-admin topic get --uid=USER_ID --topic=TOPIC_NAME
例
[root@rgw ~]# radosgw-admin topic get --uid=example --topic=example-topic
特定のトピックを削除するには、以下を実行します。
構文
radosgw-admin topic rm --uid=USER_ID --topic=TOPIC_NAME
例
[root@rgw ~]# radosgw-admin topic rm --uid=example --topic=example-topic
2.15.8. イベントレコード
イベントは、Ceph Object Gateway によって行われる操作に関する情報を保持し、選択したエンドポイント (HTTP、HTTPS、Kafka、または AMQ0.9.1 など) 上のペイロードとして送信されます。イベントレコードは JSON 形式になります。
Red Hat Ceph Storage 6 以降、次の 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
: イベントのタイプ。ObjectCreated
、ObjectRemoved
、または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 データはトピック設定で設定され、トピックによってトリガーされるすべての通知に追加されます。
関連情報
- 詳細は、Event Message Structure を参照してください。
2.15.9. バケット情報の取得
既存のバケットのサブセットに関する情報を取得します。uid
が bucket
なしで指定されると、そのユーザーに属するすべてのバケットが返されます。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
- 説明
- バケットごとの情報
- 型
- Container
- Parent
- 該当なし
buckets
- 説明
- 1 つ以上のバケットコンテナーのリストが含まれます。
- 型
- Container
- Parent
-
buckets
bucket
- 説明
- 単一バケット情報用のコンテナー。
- 型
- Container
- Parent
-
buckets
name
- 説明
- バケットの名前。
- 型
- String
- Parent
-
bucket
pool
- 説明
- バケットが保存されているプール。
- 型
- String
- Parent
-
bucket
id
- 説明
- 一意のバケット ID。
- 型
- String
- Parent
-
bucket
marker
- 説明
- 内部バケットタグ。
- 型
- String
- Parent
-
bucket
owner
- 説明
- バケット所有者のユーザー ID。
- 型
- String
- Parent
-
bucket
使用方法
- 説明
- ストレージの使用情報。
- 型
- Container
- Parent
-
bucket
index
- 説明
- バケットインデックスのステータス。
- 型
- String
- Parent
-
bucket
成功すると、要求はバケット情報と共にバケットコンテナーを返します。
特別なエラーレスポンス
IndexRepairFailed
- 説明
- バケットインデックスの修復に失敗しました。
- コード
- 409 Conflict
2.15.10. バケットインデックスを確認します。
既存のバケットのインデックスを確認します。
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.11. バケットの削除
既存のバケットを削除します。
ケイパビリティー
`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.12. バケットのリンク
バケットを指定ユーザーにリンクし、直前のユーザーからバケットのリンクを解除します。
ケイパビリティー
`buckets=write`
構文
PUT /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
bucket
- 説明
- リンクを解除するバケット。
- 型
- String
- 例
-
foo_bucket
- 必須
- はい
uid
- 説明
- バケットをリンクするユーザー ID。
- 型
- String
- 例
-
foo_user
- 必須
- はい
レスポンスエンティティー
bucket
- 説明
- 単一バケット情報用のコンテナー。
- 型
- Container
- Parent
- 該当なし
name
- 説明
- バケットの名前。
- 型
- String
- Parent
-
bucket
pool
- 説明
- バケットが保存されているプール。
- 型
- String
- Parent
-
bucket
id
- 説明
- 一意のバケット ID。
- 型
- String
- Parent
-
bucket
marker
- 説明
- 内部バケットタグ。
- 型
- String
- Parent
-
bucket
owner
- 説明
- バケット所有者のユーザー ID。
- 型
- String
- Parent
-
bucket
使用方法
- 説明
- ストレージの使用情報。
- 型
- Container
- Parent
-
bucket
index
- 説明
- バケットインデックスのステータス。
- 型
- String
- Parent
-
bucket
特別なエラーレスポンス
BucketUnlinkFailed
- 説明
- 指定されたユーザーからバケットのリンクを解除できません。
- コード
- 409 Conflict
BucketLinkFailed
- 説明
- バケットを指定されたユーザーにリンクできません。
- コード
- 409 Conflict
2.15.13. バケットのリンクを解除します。
指定されたユーザーからバケットのリンクを解除します。主にバケットの所有権を変更するのに役立ちます。
ケイパビリティー
`buckets=write`
構文
POST /admin/bucket?format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
bucket
- 説明
- リンクを解除するバケット。
- 型
- String
- 例
-
foo_bucket
- 必須
- はい
uid
- 説明
- バケットをリンクするユーザー ID。
- 型
- String
- 例
-
foo_user
- 必須
- はい
レスポンスエンティティー
なし。
特別なエラーレスポンス
BucketUnlinkFailed
- 説明
- 指定されたユーザーからバケットのリンクを解除できません。
- 型
- 409 Conflict
2.15.14. バケットまたはオブジェクトポリシーを取得する
オブジェクトまたはバケットのポリシーを読み取ります。
ケイパビリティー
`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
- 説明
- アクセス制御ポリシー。
- 型
- Container
- Parent
- 該当なし
成功した場合には、オブジェクトまたはバケットポリシーを返します。
特別なエラーレスポンス
IncompleteBody
- 説明
- バケットポリシー要求にバケットが指定されていないか、オブジェクトがオブジェクトポリシー要求に指定されていません。
- コード
- 400 Bad Request
2.15.15. オブジェクトの削除
既存のオブジェクトを削除します。
所有者を一時停止せずに指定する必要はありません。
ケイパビリティー
`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.16. Quotas
管理操作 API を使用すると、ユーザーおよびユーザーが所有するバケットにクォータを設定できます。クォータには、バケットのオブジェクトの最大数と、メガバイト単位のストレージの最大サイズが含まれます。
クォータを表示するには、ユーザーに users=read
ケイパビリティーが必要です。クォータを設定、変更、または無効にするには、ユーザーに users=write
ケイパビリティーが必要です。
クォータの有効なパラメーターには以下が含まれます。
-
Bucket:
bucket
オプションでは、ユーザーが所有するバケットのクォータを指定できます。 -
Maximum Objects:
max-objects
設定では、オブジェクトの最大数を指定できます。負の値を設定すると、この設定が無効になります。 -
Maximum Size:
max-size
オプションでは、バイトの最大数のクォータを指定できます。負の値を設定すると、この設定が無効になります。 -
Quota Scope:
quota-scope
オプションは、クォータのスコープを設定します。オプションはbucket
とuser
です。
2.15.17. ユーザークォータの取得
クォータを取得するには、read
パーミッションを持つ users
ケイパビリティーが設定されている必要があります。
構文
GET /admin/user?quota&uid=UID"a-type=user
2.15.18. ユーザークォータの設定
クォータを設定するには、ユーザーに write
パーミッションを持つ users
ケイパビリティーを設定する必要があります。
構文
PUT /admin/user?quota&uid=UID"a-type=user
コンテンツには、対応する読み取り操作でエンコードされているクォータ設定の JSON 表現が含まれている必要があります。
2.15.19. バケットクォータの取得
既存のバケットのサブセットに関する情報を取得します。uid
が bucket
なしで指定されると、そのユーザーに属するすべてのバケットが返されます。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
- 説明
- バケットごとの情報
- 型
- Container
- Parent
- 該当なし
buckets
- 説明
- 1 つ以上のバケットコンテナーのリストが含まれます。
- 型
- Container
- Parent
- 該当なし
bucket
- 説明
- 単一バケット情報用のコンテナー。
- 型
- Container
- Parent
-
buckets
name
- 説明
- バケットの名前。
- 型
- String
- Parent
-
bucket
pool
- 説明
- バケットが保存されているプール。
- 型
- String
- Parent
-
bucket
id
- 説明
- 一意のバケット ID。
- 型
- String
- Parent
-
bucket
marker
- 説明
- 内部バケットタグ。
- 型
- String
- Parent
-
bucket
owner
- 説明
- バケット所有者のユーザー ID。
- 型
- String
- Parent
-
bucket
使用方法
- 説明
- ストレージの使用情報。
- 型
- Container
- Parent
-
bucket
index
- 説明
- バケットインデックスのステータス。
- 型
- String
- Parent
-
bucket
成功すると、要求はバケット情報と共にバケットコンテナーを返します。
特別なエラーレスポンス
IndexRepairFailed
- 説明
- バケットインデックスの修復に失敗しました。
- コード
- 409 Conflict
2.15.20. バケットクォータの設定
クォータを設定するには、ユーザーに write
パーミッションを持つ users
ケイパビリティーを設定する必要があります。
構文
PUT /admin/user?quota&uid=UID"a-type=bucket
コンテンツには、対応する読み取り操作でエンコードされているクォータ設定の JSON 表現が含まれている必要があります。
2.15.21. 使用方法情報の取得
帯域幅の使用情報の要求。
ケイパビリティー
`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
- 必須
- いいえ
レスポンスエンティティー
使用方法
- 説明
- 使用方法に関する情報用のコンテナー。
- 型
- Container
エントリー
- 説明
- 使用方法エントリー情報のコンテナー。
- 型
- Container
user
- 説明
- ユーザーデータ情報のコンテナー
- 型
- Container
owner
- 説明
- バケットを所有するユーザーの名前。
- 型
- String
bucket
- 説明
- バケット名。
- 型
- String
time
- 説明
- データが指定されている時間の下限 (最初の関連する時間の開始に丸められます)。
- 型
- String
epoch
- 説明
-
1/1/1970
からの経過時間 (秒単位)。 - 型
- String
categories
- 説明
- 統計情報カテゴリーのコンテナー。
- 型
- Container
entry
- 説明
- stats エントリーのコンテナー。
- 型
- Container
category
- 説明
- 統計が提供される要求カテゴリーの名前。
- 型
- String
bytes_sent
- 説明
- Ceph Object Gateway によって送信されるバイト数。
- 型
- 整数
bytes_received
- 説明
- Ceph Object Gateway が受け取るバイト数。
- 型
- 整数
ops
- 説明
- 演算の数。
- 型
- 整数
successful_ops
- 説明
- 成功した操作の数。
- 型
- 整数
summary
- 説明
- 成功した操作の数。
- 型
- Container
total
- 説明
- 統計情報の概要集計合計のコンテナー。
- 型
- Container
成功すると、レスポンスには要求された情報が含まれます。
2.15.22. 使用方法に関する情報を削除
使用方法に関する情報を削除します。日付を指定しないと、すべての使用情報が削除されます。
ケイパビリティー
`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.23. 標準エラーレスポンス
以下のリストは、標準的なエラーレスポンスと説明の詳細を示しています。
AccessDenied
- 説明
- アクセスが拒否されました。
- コード
- 403 Forbidden
InternalError
- 説明
- 内部サーバーエラー。
- コード
- 500 Internal Server Error
NoSuchUser
- 説明
- ユーザーが存在しません。
- コード
- 404 Not Found
NoSuchBucket
- 説明
- バケットが存在しません。
- コード
- 404 Not Found
NoSuchKey
- 説明
- そのようなアクセスキーはありません。
- コード
- 404 Not Found