開発者ガイド
Red Hat Ceph Storage の各種アプリケーションプログラミングインターフェイスの使用
概要
第1章 Ceph RESTful API リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Ceph RESTful API または単に Red Hat Ceph Storage Dashboard が提供する Ceph API を使用して、Red Hat Ceph Storage クラスターと対話することができます。Ceph Monitors および OSD に関する情報と、それぞれの設定オプションを表示できます。Ceph プールを作成または編集することもできます。
Ceph API は次の標準を使用します。
- HTTP 1.1
- JSON
- MIME および HTTP コンテンツ Negotiation
- JWT
これらの標準は OpenAPI 3.0 に準拠しており、API 構文、セマンティクス、コンテンツエンコーディング、バージョン管理、認証、および承認を規制しています。
前提条件
- 正常かつ実行中の Red Hat Ceph Storage クラスター
- Ceph Manager を実行するノードへのアクセス。
1.1. Ceph API のバージョン リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の主な目的は、安定したインターフェイスを提供することです。安定したインターフェイスを実現するには、Ceph API は以下の原則で構築されます。
- 暗黙的なデフォルトを回避するために、すべてのエンドポイントに対する明示的なデフォルトバージョン。
粒度の細かい変更をエンドポイントごとに制御します。
特定のエンドポイントからの予想されるバージョンは HTTP ヘッダーに記載されます。
構文
Accept: application/vnd.ceph.api.vMAJOR.MINOR+json
Accept: application/vnd.ceph.api.vMAJOR.MINOR+jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Accept: application/vnd.ceph.api.v1.0+json
Accept: application/vnd.ceph.api.v1.0+jsonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 現在の Ceph API サーバーがその特定のバージョンを対処できない場合は、
415 - Unsupported Media Typeの応答が返されます。
セマンティックバージョニングの使用。
- 主な変更点は後方互換性がありません。変更すると、リクエストに無関係な変更や、特定のエンドポイントの応答形式に変更が加えられる可能性があります。
- マイナーな変更は、後方互換性および転送の後方的です。変更は、特定のエンドポイントの要求形式または応答形式への追加変更で構成されます。
1.2. Ceph API の認証および認可 リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API へのアクセスは、2 つのチェックポイントを通過します。まず、有効なユーザーと既存ユーザーの代理で要求が行われていることを認証します。2 つ目は、認証前のユーザーの作成者は、ターゲットのエンドユーザーでの作成、読み取り、更新、削除などの特定のアクションを実行できます。
ユーザーが Ceph API の使用を開始する前に、有効な JSON Web Token (JWT) が必要です。/api/auth エンドポイントでは、このトークンを取得できます。
例
curl -X POST "https://example.com:8443/api/auth" \
-H "Accept: application/vnd.ceph.api.v1.0+json" \
-H "Content-Type: application/json" \
-d '{"username": user1, "password": password1}'
[root@mon ~]# curl -X POST "https://example.com:8443/api/auth" \
-H "Accept: application/vnd.ceph.api.v1.0+json" \
-H "Content-Type: application/json" \
-d '{"username": user1, "password": password1}'
このトークンは、Authorization HTTP ヘッダー内に配置して、すべての API 要求と共に使用する必要があります。
構文
curl -H "Authorization: Bearer TOKEN" ...
curl -H "Authorization: Bearer TOKEN" ...
1.3. Ceph API モジュールの有効化と保護 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ceph Storage Dashboard モジュールは、SSL セキュアな接続で、ストレージクラスターに RESTful API アクセスを提供します。
SSL を無効にすると、ユーザー名およびパスワードが暗号化されずに Red Hat Ceph ストレージダッシュボードに送信されます。
前提条件
- Ceph Monitor ノードへの root レベルのアクセス。
-
少なくとも 1 つの
ceph-mgrデーモンがアクティブであることを確認します。 -
ファイアウォールを使用する場合は、SSL の場合は TCP ポート
8443、SSL なしの TCP ポート8080が、アクティブなceph-mgrデーモンのあるノードでオープンになっていることを確認してください。
手順
Cephadm シェルにログインします。
例
root@host01 ~]# cephadm shell
root@host01 ~]# cephadm shellCopy to Clipboard Copied! Toggle word wrap Toggle overflow RESTful プラグインを有効にします。
[ceph: root@host01 /]# ceph mgr module enable dashboard
[ceph: root@host01 /]# ceph mgr module enable dashboardCopy to Clipboard Copied! Toggle word wrap Toggle overflow SSL 証明書を設定します。
組織の認証局 (CA) が証明書を提供する場合は、証明書ファイルを使用して設定されます。
構文
ceph dashboard set-ssl-certificate HOST_NAME -i CERT_FILE ceph dashboard set-ssl-certificate-key HOST_NAME -i KEY_FILE
ceph dashboard set-ssl-certificate HOST_NAME -i CERT_FILE ceph dashboard set-ssl-certificate-key HOST_NAME -i KEY_FILECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph dashboard set-ssl-certificate -i dashboard.crt [ceph: root@host01 /]# ceph dashboard set-ssl-certificate-key -i dashboard.key
[ceph: root@host01 /]# ceph dashboard set-ssl-certificate -i dashboard.crt [ceph: root@host01 /]# ceph dashboard set-ssl-certificate-key -i dashboard.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 一意のノードベースの証明書を設定する場合は、HOST_NAME をコマンドに追加します。
例
[ceph: root@host01 /]# ceph dashboard set-ssl-certificate host01 -i dashboard.crt [ceph: root@host01 /]# ceph dashboard set-ssl-certificate-key host01 -i dashboard.key
[ceph: root@host01 /]# ceph dashboard set-ssl-certificate host01 -i dashboard.crt [ceph: root@host01 /]# ceph dashboard set-ssl-certificate-key host01 -i dashboard.keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow または、自己署名証明書を生成することもできます。ただし、自己署名証明書を使用しても、HTTPS プロトコルのセキュリティー上の利点を十分に享受することはできません。
[ceph: root@host01 /]# ceph dashboard create-self-signed-cert
[ceph: root@host01 /]# ceph dashboard create-self-signed-certCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告自己署名証明書についてエラーを表示する最新の Web ブラウザーのほとんどは、安全な接続を確立する前に確認する必要があります。
ユーザーを作成し、パスワードを設定し、ロールを設定します。
構文
echo -n "PASSWORD" > PATH_TO_FILE/PASSWORD_FILE ceph dashboard ac-user-create USER_NAME -i PASSWORD_FILE ROLE
echo -n "PASSWORD" > PATH_TO_FILE/PASSWORD_FILE ceph dashboard ac-user-create USER_NAME -i PASSWORD_FILE ROLECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# echo -n "p@ssw0rd" > /root/dash-password.txt [ceph: root@host01 /]# ceph dashboard ac-user-create user1 -i /root/dash-password.txt administrator
[ceph: root@host01 /]# echo -n "p@ssw0rd" > /root/dash-password.txt [ceph: root@host01 /]# ceph dashboard ac-user-create user1 -i /root/dash-password.txt administratorCopy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
administratorロールを持つuser1という名前のユーザーを作成します。RESTful プラグインの Web ページに接続します。Web ブラウザーを開き、以下の URL を入力します。
構文
https://HOST_NAME:8443
https://HOST_NAME:8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
https://host01:8443
https://host01:8443Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自己署名証明書を使用した場合は、セキュリティー例外を確認します。
関連情報
-
ceph dashboard --helpコマンド -
https://HOST_NAME:8443/docページ。HOST_NAME は、実行中のceph-mgrインスタンスを持つノードの IP アドレスまたは名前です。 - 詳細は、Red Hat Customer Portal にある、お使いの OS バージョンの Red Hat Enterprise Linux の製品ドキュメント 内の セキュリティー強化ガイド を参照してください。
1.4. 質問および回答 リンクのコピーリンクがクリップボードにコピーされました!
1.4.1. 情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Ceph API を使用して、ストレージクラスター、Ceph モニター、OSD、プール、およびホストに関する情報を表示する方法について説明します。
1.4.1.1. すべてのクラスター設定オプションを表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用してクラスター設定オプションおよびその値を表示する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:CEPH_MANAGER_PORT/api/cluster_conf'
curl --silent --user USER 'https://CEPH_MANAGER:CEPH_MANAGER_PORT/api/cluster_conf'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
CEPH_MANAGER_PORTは、TCP ポート番号に置き換えます。デフォルトの TCP ポート番号は 8443 です。
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/cluster_conf
https://CEPH_MANAGER:8080/api/cluster_conf
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
関連情報
- Red Hat Ceph Storage 7 の 設定ガイド
1.4.1.2. 特定のクラスター設定オプションを表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、特定のクラスターオプションとその値を表示する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
ARGUMENTは、表示する設定オプションに置き換えます。
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
ARGUMENTは、表示する設定オプションに置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT
https://CEPH_MANAGER:8080/api/cluster_conf/ARGUMENT
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
ARGUMENTは、表示する設定オプションに置き換えます。
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
関連情報
- Red Hat Ceph Storage 7 の 設定ガイド
1.4.1.3. OSD のすべての設定オプションを表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、OSD のすべての設定オプションおよびその値を表示する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/flags', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/osd/flags
https://CEPH_MANAGER:8080/api/osd/flags
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
関連情報
- Red Hat Ceph Storage 7 の 設定ガイド
1.4.1.4. CRUSH ルールの表示方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、CRUSH ルールを表示する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/crush_rule'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/crush_rule', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/crush_rule
https://CEPH_MANAGER:8080/api/crush_rule
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
関連情報
- Red Hat Ceph Storage 7 の 管理ガイド の CRUSH ルール セクション
1.4.1.5. Monitor に関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような特定の Monitor に関する情報を表示する方法を説明します。
- IP アドレス
- 名前
- クォーラムのステータス
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/monitor', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/monitor
https://CEPH_MANAGER:8080/api/monitor
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.6. 特定のモニターに関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような特定の Monitor に関する情報を表示する方法を説明します。
- IP アドレス
- 名前
- クォーラムのステータス
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
NAMEは、Monitor の短縮ホスト名に置き換えます。
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/monitor/NAME'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
NAMEは、Monitor の短縮ホスト名に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/monitor/NAME', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/monitor/NAME
https://CEPH_MANAGER:8080/api/monitor/NAME
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
NAMEは、Monitor の短縮ホスト名に置き換えます。
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.7. OSD に関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような OSD に関する情報を表示する方法を説明します。
- IP アドレス
- そのプール
- アフィニティー
- 重み
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/osd
https://CEPH_MANAGER:8080/api/osd
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.8. 特定の OSD に関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような特定の OSD に関する情報を表示する方法を説明します。
- IP アドレス
- そのプール
- アフィニティー
- 重み
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/osd/ID
https://CEPH_MANAGER:8080/api/osd/ID
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.9. OSD でどのプロセスがスケジュールされるのかを指定する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用して、スクラビングやディープスクラビングなどのプロセスを OSD にスケジュールする方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/osd/ID/command', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/osd/ID/command
https://CEPH_MANAGER:8080/api/osd/ID/command
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.10. プールに関する情報の表示方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のようなプールの情報を表示する方法を説明します。
- フラグ
- サイズ
- 配置グループの数
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/pool', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/pool
https://CEPH_MANAGER:8080/api/pool
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.11. 特定のプールに関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような特定のプールに関する情報を表示する方法を説明します。
- フラグ
- サイズ
- 配置グループの数
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/pool/ID
https://CEPH_MANAGER:8080/api/pool/ID
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.12. ホストに関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のようなホストに関する情報を表示する方法を説明します。
- ホスト名
- Ceph デーモンとその ID
- Ceph バージョン
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/host', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/host
https://CEPH_MANAGER:8080/api/host
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.1.13. 特定のホストに関する情報を表示する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、以下のような特定のホストに関する情報を表示する方法を説明します。
- ホスト名
- Ceph デーモンとその ID
- Ceph バージョン
curl コマンド
コマンドラインで、以下を使用します。
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
curl --silent --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
HOST_NAMEは、hostnameフィールドにリスト表示されるホストのホスト名に置き換えます。
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
curl --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/host/HOST_NAME'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
HOST_NAMEは、hostnameフィールドにリスト表示されるホストのホスト名に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.get('https://CEPH_MANAGER:8080/api/host/HOST_NAME', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
Web ブラウザー
Web ブラウザーで以下を入力します。
https://CEPH_MANAGER:8080/api/host/HOST_NAME
https://CEPH_MANAGER:8080/api/host/HOST_NAME
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
HOST_NAMEは、hostnameフィールドにリスト表示されるホストのホスト名に置き換えます。
プロンプトが表示されたら、ユーザー名とパスワードを入力します。
1.4.2. 設定の変更 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Ceph API プラグインを使用して OSD 設定オプション、OSD の状態、プールに関する情報を変更する方法を説明します。
1.4.2.1. OSD 設定オプションの変更方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用して OSD 設定オプションを変更する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
以下を置き換えます。
-
OPTIONを変更するオプションに置き換えます (pause、noup、nodown、noout、noin、nobackfill、norecover、noscrub、nodeep-scrub) -
trueまたはfalseのVALUE -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/flags'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
OPTIONを変更するオプションに置き換えます (pause、noup、nodown、noout、noin、nobackfill、norecover、noscrub、nodeep-scrub) -
VALUEはTrueまたはFalseに置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/flags', json={"OPTION": VALUE}, auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
1.4.2.2. OSD の状態を変更する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用して OSD の状態を変更する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
以下を置き換えます。
-
STATEは、変更する状態 (inまたはup) に置き換えます。 -
trueまたはfalseのVALUE -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
echo -En '{"STATE": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID -
STATEは、変更する状態 (inまたはup) に置き換えます。 -
VALUEはTrueまたはFalseに置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"STATE": VALUE}, auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
1.4.2.3. OSD の重みを再設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、OSD の重みを変更する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
以下を置き換えます。
-
VALUEは、新しい重みに置き換えます。 -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
echo -En '{"reweight": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID -
VALUEは、新しい重みに置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/osd/ID', json={"reweight": VALUE}, auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
1.4.2.4. プールの情報の変更方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用して特定のプールの情報を変更する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
以下を置き換えます。
-
OPTIONは、変更するオプションに置き換えます。 -
VALUEは、オプションの新しい値に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
echo -En '{"OPTION": VALUE}' | curl --request PATCH --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID -
OPTIONは、変更するオプションに置き換えます。 -
VALUEは、オプションの新しい値に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.patch('https://CEPH_MANAGER:8080/api/pool/ID', json={"OPTION": VALUE}, auth=("USER, "PASSWORD"), verify=False)
>> print result.json()
1.4.3. クラスターの管理 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、Ceph API を使用して OSD でのスクラビングまたはディープスクラビングの初期化、プールの作成、プールからのデータの削除、リクエストの削除、または要求の作成を行う方法を説明します。
1.4.3.1. OSD でスケジュール済みプロセスを実行する方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、OSD でのスクラビングやディープスクラビングなどの RESTful API を使用してスケジュール済みプロセスを実行する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
以下を置き換えます。
-
起動するプロセス (
scrub、deep-scrub、またはrepair) を持つCOMMAND。プロセスが OSD でサポートされていることを確認します。詳細は、「OSD でどのプロセスがスケジュールされるのかを指定する方法」 を参照してください。 -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
echo -En '{"command": "COMMAND"}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/osd/ID/command'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
osdフィールドにリストされている OSD のIDを持つ ID -
起動するプロセス (
scrub、deep-scrub、またはrepair) を持つCOMMAND。プロセスが OSD でサポートされていることを確認します。詳細は、「OSD でどのプロセスがスケジュールされるのかを指定する方法」 を参照してください。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.post('https://CEPH_MANAGER:8080/api/osd/ID/command', json={"command": "COMMAND"}, auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
1.4.3.2. 新規プールの作成方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用して新しいプールを作成する方法を説明します。
curl コマンド
コマンドラインで、以下を使用します。
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --user USER 'https://CEPH_MANAGER:8080/api/pool'
以下を置き換えます。
-
NAMEは、新規プールの名前に置き換えます。 -
NUMBERは、配置グループの数に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
echo -En '{"name": "NAME", "pg_num": NUMBER}' | curl --request POST --data @- --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
NAMEは、新規プールの名前に置き換えます。 -
NUMBERは、配置グループの数に置き換えます。 -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.post('https://CEPH_MANAGER:8080/api/pool', json={"name": "NAME", "pg_num": NUMBER}, auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
1.4.3.3. プールの削除方法 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、RESTful プラグインを使用してプールを削除する方法を説明します。
この要求はデフォルトで禁止されています。そのためには、以下のパラメーターを Ceph 設定ガイドに追加します。
mon_allow_pool_delete = true
mon_allow_pool_delete = true
curl コマンド
コマンドラインで、以下を使用します。
curl --request DELETE --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
curl --request DELETE --silent --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
以下を置き換えます。
-
USERは、ユーザー名に置き換えます。 -
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID
プロンプトが表示されたら、ユーザーのパスワードを入力します。
自己署名証明書を使用した場合は、--insecure オプションを使用します。
curl --request DELETE --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
curl --request DELETE --silent --insecure --user USER 'https://CEPH_MANAGER:8080/api/pool/ID'
Python
Python インタープリターで、以下を入力します。
python
> import requests
> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"))
> print result.json()
$ python
>> import requests
>> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"))
>> print result.json()
以下を置き換えます。
-
アクティブな
ceph-mgrインスタンスを持つノードの IP アドレスまたは短いホスト名を持つCEPH_MANAGER -
poolフィールドにリストされているプールのIDを持つ ID -
USERは、ユーザー名に置き換えます。 -
PASSWORDは、ユーザーのパスワードに置き換えます。
自己署名証明書を使用した場合は、verify=False オプションを使用します。
python
> import requests
> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False)
> print result.json()
$ python
>> import requests
>> result = requests.delete('https://CEPH_MANAGER:8080/api/pool/ID', auth=("USER", "PASSWORD"), verify=False)
>> print result.json()
第2章 Ceph Object Gateway 管理 API リンクのコピーリンクがクリップボードにコピーされました!
開発者は、RESTful アプリケーションプログラミングインターフェイス (API) と対話して Ceph Object Gateway を管理することができます。Ceph Object Gateway は、RESTful API の radosgw-admin コマンドの機能を利用できます。他の管理プラットフォームと統合できるユーザー、データ、クォータ、および使用方法を管理できます。
Red Hat では、Ceph Object Gateway の設定時にコマンドラインインターフェイスを使用することを推奨します。
管理 API は以下の機能を提供します。
- 認証要求
ユーザーアカウントの管理
ユーザーのケーパビリティー管理
キー管理
バケット管理
オブジェクト管理
- 使用方法の取得
- 使用方法情報の削除
- 標準エラーレスポンス
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
2.1. 管理操作 リンクのコピーリンクがクリップボードにコピーされました!
管理アプリケーションプログラミングインターフェイス (API) リクエストは、設定可能な 'admin' リソースエントリーポイントで開始する URI で実行されます。管理 API の認可は S3 認可メカニズムを複製します。一部の操作では、ユーザーが特別な管理機能を保持する必要があります。XML または JSON のいずれかのレスポンスエンティティータイプはリクエストの 'format' オプションとして指定され、指定されていないとデフォルトは JSON に設定されます。
例
2.2. 管理認証要求 リンクのコピーリンクがクリップボードにコピーされました!
Amazon の S3 サービスは、アクセスキー、要求ヘッダーのハッシュ、および秘密鍵を使用して要求を認証します。これは、認証されたリクエスト (特に SSL オーバーヘッドのない大規模なアップロード) を提供する利点があります。
S3 API のほとんどのユースケースには、Java や Python Boto 用の Amazon SDK の AmazonS3Client などのオープンソースの S3 クライアントを使用します。これらのライブラリーは、Ceph Object Gateway 管理 API をサポートしません。これらのライブラリーをサブクラス化および拡張して、Ceph Admin API をサポートすることができます。一意のゲートウェイクライアントを作成できます。
execute() メソッドの作成
このセクションの CephAdminAPI のサンプルクラスでは、要求パラメーターの取得、リクエストの認証、Ceph 管理 API を呼び出してレスポンスを受け取ることができる execute() メソッドの作成方法を説明します。
CephAdminAPI クラスの例は、商用としてはサポートされず、そのように意図されてもいません。これは説明のみを目的としています。
Ceph Object Gateway の呼び出し
クライアントコード には、CRUD 操作を示すために Ceph Object Gateway への 5 つの呼び出しが含まれます。
- ユーザーの作成
- ユーザーの取得
- ユーザーの変更
- サブユーザーの作成
- ユーザーを削除します。
この例を使用するには、httpcomponents-client-4.5.3 Apache HTTP コンポーネントを取得します。たとえば、http://hc.apache.org/downloads.cgi からダウンロードできます。その後、tar ファイルをデプロイメントして lib ディレクトリーに移動し、JAVA_HOME ディレクトリーの /jre/lib/ext ディレクトリーまたはカスタムクラスパスにコピーします。
CephAdminAPI クラスの例を検査する際に、execute() メソッドは HTTP メソッド、リクエストパス、オプションのサブリソース、未指定の場合は null、およびパラメーターのマップを取得することに注意してください。サブリソース (例: subuser、key など) で実行するには、サブリソースを execute() メソッドの引数として指定する必要があります。
方法の例を以下に示します。
- URI をビルドします。
- HTTP ヘッダー文字列をビルドします。
-
HTTP リクエストをインスタンス化します (例:
PUT、POST、GET、DELETE)。 -
Dateヘッダーを HTTP ヘッダー文字列および要求ヘッダーに追加します。 -
Authorizationヘッダーを HTTP リクエストヘッダーに追加します。 - HTTP クライアントをインスタンス化し、インスタンス化された HTTP リクエストを渡します。
- 要求を行います。
- レスポンスを返します。
ヘッダー文字列のビルド
ヘッダー文字列のビルドは、Amazon の S3 認証手順を伴うプロセスの一部です。特に、サンプルメソッドは以下を行います。
-
PUT、POST、GET、DELETEなどのリスエストタイプを追加します。 - 日付を追加します。
- requestPath を追加します。
リクエストタイプは、先頭または最後の空白のない大文字である必要があります。空白を削除しないと、認証は失敗します。日付は GMT で表現される必要があります。さもないと、認証に失敗します。
例示的な方法には、他のヘッダーはありません。Amazon S3 認証手順は、x-amz ヘッダーの辞書式に並べ替えられます。したがって、x-amz ヘッダーを追加する場合は、必ず辞書式で追加する必要があります。
ヘッダー文字列をビルドしたら、次の手順は HTTP リクエストをインスタンス化し、URI を渡すことです。典型的なメソッドは、PUT を使用してユーザーおよびサブユーザーを作成し、GET を使用してユーザーを取得し、POST を使用してユーザーを変更し、DELETE を使用してユーザーを削除します。
リクエストをインスタンス化したら、Date ヘッダーに続けて Authorization ヘッダーを追加します。Amazon の S3 認証は標準の Authorization ヘッダーを使用し、以下の構造を持ちます。
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
CephAdminAPI のサンプルクラスには base64Sha1Hmac() メソッドがあります。これはヘッダー文字列と admin ユーザーの秘密鍵を取得し、SHA1 HMAC を base-64 でエンコードされた文字列として返します。それぞれの execute() 呼び出しは、同じコード行を呼び出して Authorization ヘッダーをビルドします。
httpRequest.addHeader("Authorization", "AWS " + this.getAccessKey() + ":" + base64Sha1Hmac(headerString.toString(), this.getSecretKey()));
httpRequest.addHeader("Authorization", "AWS " + this.getAccessKey() + ":" + base64Sha1Hmac(headerString.toString(), this.getSecretKey()));
以下の CephAdminAPI のサンプルクラスでは、アクセスキー、シークレットキー、およびエンドポイントをコンストラクターに渡す必要があります。クラスは実行時に変更するためのアクセスメソッドを提供します。
例
後続の CephAdminAPIClient の例は、CephAdminAPI クラスをインスタンス化する方法、リクエストパラメーターのマップをビルドし、execute() メソッドを使用してユーザーを作成、取得、更新、および削除する方法を示しています。
例
関連情報
- 詳細は、Red Hat Ceph Storage 開発者ガイド の S3 認証 セクションを参照してください。
- Amazon S3 認証手順の詳細は、Amazon Simple Storage Service ドキュメントの Signing and Authenticating REST Requests セクションを参照してください。
2.3. 管理ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway ノードから radosgw-admin コマンドを実行するには、ノードに admin キーがあることを確認します。admin キーは、任意の Ceph Monitor ノードからコピーできます。
前提条件
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
Object Gateway ユーザーを作成します。
構文
radosgw-admin user create --uid="USER_NAME" --display-name="DISPLAY_NAME"
radosgw-admin user create --uid="USER_NAME" --display-name="DISPLAY_NAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin user create --uid="admin-api-user" --display-name="Admin API User"
[user@client ~]$ radosgw-admin user create --uid="admin-api-user" --display-name="Admin API User"Copy to Clipboard Copied! Toggle word wrap Toggle overflow radosgw-adminコマンドラインインターフェイスはユーザーを返します。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 作成するユーザーに管理ケイパビリティーを割り当てます。
構文
radosgw-admin caps add --uid="USER_NAME" --caps="users=*"
radosgw-admin caps add --uid="USER_NAME" --caps="users=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin caps add --uid=admin-api-user --caps="users=*"
[user@client ~]$ radosgw-admin caps add --uid=admin-api-user --caps="users=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow radosgw-adminコマンドラインインターフェイスはユーザーを返します。"caps":には、ユーザーに割り当てられたケイパビリティーがあります。出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで、管理者権限を持つユーザーが作成されます。
2.4. ユーザー情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーの情報を取得します。この操作を実行するには、cap users または user-info-without-keys を read に設定する必要があります。cap user-info-without-keys が read または * に設定されている場合、この操作を実行しているユーザーがシステムユーザーまたは管理者ユーザーであるか、cap users が read に設定されていなければ、S3 キーと Swift キーはレスポンスに含まれません。
ケイパビリティー
users=read or user-info-without-keys=read
users=read or user-info-without-keys=read
構文
GET /admin/user?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
GET /admin/user?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 情報が要求されるユーザー。
- 型
- String
- 例
-
foo_user - 必須
- はい
access-key- 説明
- 情報が要求されているユーザーの S3 アクセスキー。
- 型
- String
- 例
-
ABCD0EF12GHIJ2K34LMN - 必須
- いいえ
レスポンスエンティティー
user- 説明
- ユーザーデータ情報のコンテナー
- 型
- コンテナー
- Parent
- 該当なし
user_id- 説明
- ユーザー ID。
- 型
- String
- Parent
-
user
display_name- 説明
- ユーザーの表示名。
- 型
- String
- Parent
-
user
suspended- 説明
- ユーザーが一時停止してきる場合は True。
- 型
- Boolean
- Parent
-
user
max_buckets- 説明
- ユーザーが所有するバケットの最大数。
- 型
- Integer
- Parent
-
user
subusers- 説明
- このユーザーアカウントに関連付けられたサブユーザー。
- 型
- コンテナー
- Parent
-
user
keys- 説明
- このユーザーアカウントに関連付けられた S3 キー。
- 型
- コンテナー
- Parent
-
user
swift_keys- 説明
- このユーザーアカウントに関連付けられた Swift 鍵。
- 型
- コンテナー
- Parent
-
user
caps- 説明
- ユーザー機能。
- 型
- コンテナー
- Parent
-
user
成功すると、応答にはユーザー情報が含まれます。
特別なエラーレスポンス
なし。
2.5. ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
新しいユーザーを作成します。デフォルトでは、S3 キーペアが自動的に作成され、レスポンスで返されます。access-key または secret-key のいずれかのみを指定すると、省略キーが自動的に生成されます。デフォルトでは、生成されたキーは、既存のキーペアを置き換えることなくキーリングに追加されます。access-key が指定され、ユーザーが所有する既存のキーを参照すると、そのキーは変更されます。
ケイパビリティー
`users=write`
`users=write`
構文
PUT /admin/user?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
PUT /admin/user?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 作成されるユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
display-name- 説明
- 作成するユーザーの表示名。
- 型
- String
- 例
-
foo_user - 必須
- はい
email- 説明
- ユーザーに関連付けられたメールアドレス。
- 型
- String
- 例
-
foo@bar.com - 必須
- いいえ
key-type- 説明
- 生成されるキータイプ。オプションは swift、s3 (デフォルト) です。
- 型
- String
- 例
-
s3[s3] - 必須
- いいえ
access-key- 説明
- アクセスキーを指定します。
- 型
- String
- 例
-
ABCD0EF12GHIJ2K34LMN - 必須
- いいえ
secret-key- 説明
- シークレットキーを指定します。
- 型
- String
- 例
-
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8 - 必須
- いいえ
user-caps- 説明
- ユーザー機能。
- 型
- String
- 例
-
usage=read, write; users=read - 必須
- いいえ
generate-key- 説明
- 新しいキーペアを生成し、既存のキーリングに追加します。
- 型
- Boolean
- 例
- True [True]
- 必須
- いいえ
max-buckets- 説明
- ユーザーが所有できるバケットの最大数を指定します。
- 型
- Integer
- 例
- 500 [1000]
- 必須
- いいえ
suspended- 説明
- ユーザーが一時停止するかどうかを指定します。
- 型
- Boolean
- 例
- False [False]
- 必須
- いいえ
レスポンスエンティティー
user- 説明
- ユーザーが一時停止するかどうかを指定します。
- 型
- Boolean
- Parent
- いいえ
user_id- 説明
- ユーザー ID。
- 型
- String
- Parent
-
user
display_name- 説明
- ユーザーの表示名。
- 型
- String
- Parent
-
user
suspended- 説明
- ユーザーが一時停止してきる場合は True。
- 型
- Boolean
- Parent
-
user
max_buckets- 説明
- ユーザーが所有するバケットの最大数。
- 型
- Integer
- Parent
-
user
subusers- 説明
- このユーザーアカウントに関連付けられたサブユーザー。
- 型
- コンテナー
- Parent
-
user
keys- 説明
- このユーザーアカウントに関連付けられた S3 キー。
- 型
- コンテナー
- Parent
-
user
swift_keys- 説明
- このユーザーアカウントに関連付けられた Swift 鍵。
- 型
- コンテナー
- Parent
-
user
caps- 説明
- ユーザー機能。
- 型
- コンテナー
- Parent
- 成功すると、応答にはユーザー情報が含まれます。
特別なエラーレスポンス
UserExists- 説明
- 既存ユーザーの作成を試行。
- コード
- 409 Conflict
InvalidAccessKey- 説明
- 無効なアクセスキーが指定されている。
- コード
- 400 Bad Request
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
InvalidSecretKey- 説明
- 無効なシークレットキーが指定されている。
- コード
- 400 Bad Request
KeyExists- 説明
- 提供されたアクセスキーが存在し、別のユーザーに属している。
- コード
- 409 Conflict
EmailExists- 説明
- 提供されるメールアドレスが存在する。
- コード
- 409 Conflict
InvalidCap- 説明
- 無効な管理者機能の付与を試行。
- コード
- 400 Bad Request
関連情報
- サブユーザーの作成については、Red Hat Ceph Storage 開発者ガイド を参照してください。
2.6. ユーザーの変更 リンクのコピーリンクがクリップボードにコピーされました!
既存ユーザーの変更
ケイパビリティー
`users=write`
`users=write`
構文
POST /admin/user?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
POST /admin/user?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 作成されるユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
display-name- 説明
- 作成するユーザーの表示名。
- 型
- String
- 例
-
foo_user - 必須
- はい
email- 説明
- ユーザーに関連付けられたメールアドレス。
- 型
- String
- 例
-
foo@bar.com - 必須
- いいえ
generate-key- 説明
- 新しいキーペアを生成し、既存のキーリングに追加します。
- 型
- Boolean
- 例
- True [False]
- 必須
- いいえ
access-key- 説明
- アクセスキーを指定します。
- 型
- String
- 例
-
ABCD0EF12GHIJ2K34LMN - 必須
- いいえ
secret-key- 説明
- シークレットキーを指定します。
- 型
- String
- 例
-
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8 - 必須
- いいえ
key-type- 説明
- 生成されるキータイプ。オプションは swift、s3 (デフォルト) です。
- 型
- String
- 例
-
s3 - 必須
- いいえ
user-caps- 説明
- ユーザー機能。
- 型
- String
- 例
-
usage=read, write; users=read - 必須
- いいえ
max-buckets- 説明
- ユーザーが所有できるバケットの最大数を指定します。
- 型
- Integer
- 例
- 500 [1000]
- 必須
- いいえ
suspended- 説明
- ユーザーが一時停止するかどうかを指定します。
- 型
- Boolean
- 例
- False [False]
- 必須
- いいえ
レスポンスエンティティー
user- 説明
- ユーザーが一時停止するかどうかを指定します。
- 型
- Boolean
- Parent
- いいえ
user_id- 説明
- ユーザー ID。
- 型
- String
- Parent
-
user
display_name- 説明
- ユーザーの表示名。
- 型
- String
- Parent
-
user
suspended- 説明
- ユーザーが一時停止してきる場合は True。
- 型
- Boolean
- Parent
-
user
max_buckets- 説明
- ユーザーが所有するバケットの最大数。
- 型
- Integer
- Parent
-
user
subusers- 説明
- このユーザーアカウントに関連付けられたサブユーザー。
- 型
- コンテナー
- Parent
-
user
keys- 説明
- このユーザーアカウントに関連付けられた S3 キー。
- 型
- コンテナー
- Parent
-
user
swift_keys- 説明
- このユーザーアカウントに関連付けられた Swift 鍵。
- 型
- コンテナー
- Parent
-
user
caps- 説明
- ユーザー機能。
- 型
- コンテナー
- Parent
- 成功すると、応答にはユーザー情報が含まれます。
特別なエラーレスポンス
InvalidAccessKey- 説明
- 無効なアクセスキーが指定されている。
- コード
- 400 Bad Request
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
InvalidSecretKey- 説明
- 無効なシークレットキーが指定されている。
- コード
- 400 Bad Request
KeyExists- 説明
- 提供されたアクセスキーが存在し、別のユーザーに属している。
- コード
- 409 Conflict
EmailExists- 説明
- 提供されるメールアドレスが存在する。
- コード
- 409 Conflict
InvalidCap- 説明
- 無効な管理者機能の付与を試行。
- コード
- 400 Bad Request
関連情報
- サブユーザーの変更については、Red Hat Ceph Storage 開発者ガイド を参照してください。
2.7. ユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
既存のユーザーを削除します。
ケイパビリティー
`users=write`
`users=write`
構文
DELETE /admin/user?format=json HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/user?format=json HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 削除するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
purge-data- 説明
- 指定すると、ユーザーに属するバケットとオブジェクトも削除されます。
- 型
- Boolean
- 例
- True
- 必須
- いいえ
レスポンスエンティティー
なし。
特別なエラーレスポンス
なし。
関連情報
- サブユーザーの削除については、Red Hat Ceph Storage 開発者ガイド を参照してください。
2.8. サブユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Swift API を使用するクライアントに主に役立つ新しいサブユーザーを作成します。
有効なリクエストには、gen-subuser または subuser のいずれかが必要です。通常、サブユーザーには、access を指定してパーミッションを付与する必要があります。ユーザー作成 (subuser が secret なしで指定されている場合) と同様に、シークレットキーは自動的に生成されます。
ケイパビリティー
`users=write`
`users=write`
構文
PUT /admin/user?subuser&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
PUT /admin/user?subuser&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- サブユーザーを作成するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
subuser- 説明
- 作成するサブユーザー ID を指定します。
- 型
- String
- 例
-
sub_foo - 必須
-
必須 (または
gen-subuser)
gen-subuser- 説明
- 作成するサブユーザー ID を指定します。
- 型
- String
- 例
-
sub_foo - 必須
-
必須 (または
gen-subuser)
secret-key- 説明
- シークレットキーを指定します。
- 型
- String
- 例
-
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8 - 必須
- いいえ
key-type- 説明
- 生成されるキータイプ。オプションは swift (デフォルト)、s3 です。
- 型
- String
- 例
-
swift[swift] - 必須
- いいえ
access- 説明
-
サブユーザーのアクセスパーミッションを設定する場合は、
read, write, readwrite, fullのいずれかである必要があります。 - 型
- String
- 例
-
read - 必須
- いいえ
generate-secret- 説明
- シークレットキーを生成します。
- 型
- Boolean
- 例
- True [False]
- 必須
- いいえ
レスポンスエンティティー
subusers- 説明
- ユーザーアカウントに関連付けられたサブユーザー
- 型
- コンテナー
- Parent
- 該当なし
permissions- 説明
- ユーザーアカウントへのサブユーザーアクセス
- 型
- String
- Parent
-
subusers
成功すると、レスポンスにはサブユーザー情報が含まれます。
特別なエラーレスポンス
SubuserExists- 説明
- 指定したサブユーザーが存在する。
- コード
- 409 Conflict
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
InvalidSecretKey- 説明
- 無効なシークレットキーが指定されている。
- コード
- 400 Bad Request
InvalidAccess- 説明
- 無効なサブユーザーアクセスが指定されている。
- コード
- 400 Bad Request
2.9. サブユーザーの変更 リンクのコピーリンクがクリップボードにコピーされました!
既存のサブユーザーを変更します。
ケイパビリティー
`users=write`
`users=write`
構文
POST /admin/user?subuser&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
POST /admin/user?subuser&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- サブユーザーを作成するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
subuser- 説明
- 変更するサブユーザー ID。
- 型
- String
- 例
-
sub_foo - 必須
generate-secret- 説明
- サブユーザーの新しい秘密鍵を生成し、既存のキーを置き換えます。
- 型
- Boolean
- 例
- True [False]
- 必須
- いいえ
secret- 説明
- シークレットキーを指定します。
- 型
- String
- 例
-
0AbCDEFg1h2i34JklM5nop6QrSTUV+WxyzaBC7D8 - 必須
- いいえ
key-type- 説明
- 生成されるキータイプ。オプションは swift (デフォルト)、s3 です。
- 型
- String
- 例
-
swift[swift] - 必須
- いいえ
access- 説明
-
サブユーザーのアクセスパーミッションを設定する場合は、
read, write, readwrite, fullのいずれかである必要があります。 - 型
- String
- 例
-
read - 必須
- いいえ
レスポンスエンティティー
subusers- 説明
- ユーザーアカウントに関連付けられたサブユーザー
- 型
- コンテナー
- Parent
- 該当なし
id- 説明
- サブユーザー ID
- 型
- String
- Parent
-
subusers
permissions- 説明
- ユーザーアカウントへのサブユーザーアクセス
- 型
- String
- Parent
-
subusers
成功すると、レスポンスにはサブユーザー情報が含まれます。
特別なエラーレスポンス
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
InvalidSecretKey- 説明
- 無効なシークレットキーが指定されている。
- コード
- 400 Bad Request
InvalidAccess- 説明
- 無効なサブユーザーアクセスが指定されている。
- コード
- 400 Bad Request
2.10. サブユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
既存のサブユーザーを削除します。
ケイパビリティー
`users=write`
`users=write`
構文
DELETE /admin/user?subuser&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/user?subuser&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 削除するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
subuser- 説明
- 削除されるサブユーザー ID。
- 型
- String
- 例
-
sub_foo - 必須
- はい
purge-keys- 説明
- サブユーザーに属する鍵を削除します。
- 型
- Boolean
- 例
- True [True]
- 必須
- いいえ
レスポンスエンティティー
なし。
特別なエラーレスポンス
なし。
2.11. ユーザーへの機能の追加 リンクのコピーリンクがクリップボードにコピーされました!
指定したユーザーに管理ケイパビリティーを追加します。
ケイパビリティー
`users=write`
`users=write`
構文
PUT /admin/user?caps&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
PUT /admin/user?caps&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 管理機能を追加するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
user-caps- 説明
- ユーザーに追加する管理機能。
- 型
- String
- 例
-
usage=read, write - 必須
- はい
レスポンスエンティティー
user- 説明
- ユーザーデータ情報のコンテナー
- 型
- コンテナー
- Parent
- 該当なし
user_id- 説明
- ユーザー ID
- 型
- String
- Parent
-
user
caps- 説明
- ユーザー機能。
- 型
- コンテナー
- Parent
-
user
成功すると、レスポンスにはユーザーのケイパビリティーが含まれます。
特別なエラーレスポンス
InvalidCap- 説明
- 無効な管理者機能の付与を試行。
- コード
- 400 Bad Request
2.12. ユーザーからの機能の削除 リンクのコピーリンクがクリップボードにコピーされました!
指定したユーザーから管理ケイパビリティーを削除します。
ケイパビリティー
`users=write`
`users=write`
構文
DELETE /admin/user?caps&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/user?caps&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 管理機能を削除するユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
user-caps- 説明
- ユーザーから削除する管理機能。
- 型
- String
- 例
-
usage=read, write - 必須
- はい
レスポンスエンティティー
user- 説明
- ユーザーデータ情報のコンテナー
- 型
- コンテナー
- Parent
- 該当なし
user_id- 説明
- ユーザー ID。
- 型
- String
- Parent
-
user
caps- 説明
- ユーザー機能。
- 型
- コンテナー
- Parent
-
user
成功すると、レスポンスにはユーザーのケイパビリティーが含まれます。
特別なエラーレスポンス
InvalidCap- 説明
- 無効な管理機能の削除を試行します。
- コード
- 400 Bad Request
NoSuchCap- 説明
- ユーザーは指定されている機能を処理しません。
- コード
- 404 Not Found
2.13. キーの作成 リンクのコピーリンクがクリップボードにコピーされました!
新しいキーを作成します。subuser を指定すると、デフォルトで作成されたキーは swift タイプになります。access-key または secret-key のいずれかのみが指定された場合、コミットされたキーは自動的に生成されます。secret-key のみが指定されている場合、access-key は自動的に生成されます。デフォルトでは、生成されたキーは、既存のキーペアを置き換えることなくキーリングに追加されます。access-key が指定され、ユーザーが所有する既存のキーを参照すると、そのキーは変更されます。レスポンスは、作成された鍵と同じタイプの鍵をすべてリスト表示するコンテナーです。
swift キーの作成時に、access-key オプションを指定しても効果はありません。また、ユーザーまたはサブユーザーごとに 1 つの swift キーのみを保持することができます。
ケイパビリティー
`users=write`
`users=write`
構文
PUT /admin/user?key&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
PUT /admin/user?key&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
uid- 説明
- 新しいキーを受け取るユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
subuser- 説明
- 新しいキーを受け取るサブユーザー ID。
- 型
- String
- 例
-
sub_foo - 必須
- いいえ
key-type- 説明
- 生成されるキータイプ。オプションは swift、s3 (デフォルト) です。
- 型
- String
- 例
-
s3[s3] - 必須
- いいえ
access-key- 説明
- アクセスキーを指定します。
- 型
- String
- 例
-
AB01C2D3EF45G6H7IJ8K - 必須
- いいえ
secret-key- 説明
- シークレットキーを指定します。
- 型
- String
- 例
-
0ab/CdeFGhij1klmnopqRSTUv1WxyZabcDEFgHij - 必須
- いいえ
generate-key- 説明
- 新しいキーペアを生成し、既存のキーリングに追加します。
- 型
- Boolean
- 例
-
True [
True] - 必須
- いいえ
レスポンスエンティティー
keys- 説明
- このユーザーアカウントに関連付けられたタイプのキー。
- 型
- コンテナー
- Parent
- 該当なし
user- 説明
- キーに関連付けられたユーザーアカウント。
- 型
- String
- Parent
-
keys
access-key- 説明
- アクセスキー。
- 型
- String
- Parent
-
keys
secret-key- 説明
- シークレットキー。
- 型
- String
- Parent
-
keys
特別なエラーレスポンス
InvalidAccessKey- 説明
- 無効なアクセスキーが指定されている。
- コード
- 400 Bad Request
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
InvalidSecretKey- 説明
- 無効なシークレットキーが指定されている。
- コード
- 400 Bad Request
InvalidKeyType- 説明
- 無効なキータイプが指定されている。
- コード
- 400 Bad Request
KeyExists- 説明
- 提供されたアクセスキーが存在し、別のユーザーに属している。
- コード
- 409 Conflict
2.14. 鍵の削除 リンクのコピーリンクがクリップボードにコピーされました!
既存のキーを削除します。
ケイパビリティー
`users=write`
`users=write`
構文
DELETE /admin/user?key&format=json HTTP/1.1 Host FULLY_QUALIFIED_DOMAIN_NAME
DELETE /admin/user?key&format=json HTTP/1.1
Host FULLY_QUALIFIED_DOMAIN_NAME
リクエストパラメーター
access-key- 説明
- 削除する S3 キーペアに属する S3 アクセスキー。
- 型
- String
- 例
-
AB01C2D3EF45G6H7IJ8K - 必須
- はい
uid- 説明
- キーの削除元のユーザー。
- 型
- String
- 例
-
foo_user - 必須
- いいえ
subuser- 説明
- キーの削除元のサブユーザー。
- 型
- String
- 例
-
sub_foo - 必須
- いいえ
key-type- 説明
削除するキータイプ。オプションは swift、s3 です。
注記swift キーを削除するために必要です。
- 型
- String
- 例
-
swift - 必須
- いいえ
特別なエラーレスポンス
なし。
レスポンスエンティティー
なし。
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) エンティティーで、すべてのトピック操作 (つまり create、delete、list、および get) は SNS 操作です。トピックには、バケット通知の作成時に使用されるエンドポイントパラメーターが必要です。リクエストが正常に行われると、レスポンスには、バケット通知要求でこのトピックを参照するために後で使用できるトピックの Amazon Resource Name (ARN) が含まれます。
topic_arn はバケット通知設定を提供し、トピックの作成後に生成されます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ルートレベルのアクセス。
- Ceph Object Gateway のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピックを作成します。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リクエストパラメーターを以下に示します。
-
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: デフォルトでは、メッセージはブローカーによって確認応答されると配信されていると見なされます。
-
-
-
応答形式の例を以下に示します。
例
レスポンスのトピックの 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'}) "
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
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 経由で行う必要があります。それ以外の場合、トピックの取得要求は拒否されます。-
EndPointArgs: エンドポイント引数。 -
EndpointTopic: エンドポイントに送信されるトピック名は、上記の例のトピック名とは異なる場合があります。 -
HasStoredSecret: エンドポイントの URL にユーザーおよびパスワード情報が含まれる場合にtrue。 -
永続: トピックが永続する場合はtrue。
-
-
TopicArn: Topic ARN。 -
OpaqueData: これはトピック上の不透明なデータセットです。
-
2.15.5. トピックのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーが定義したトピックをリスト表示します。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ルートレベルのアクセス。
- Ceph Object Gateway のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピック情報をリスト表示します。
構文
POST Action=ListTopics
POST Action=ListTopicsCopy to Clipboard Copied! Toggle word wrap Toggle overflow レスポンスフォーマットの例を以下に示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記エンドポイント URL にユーザーおよびパスワード情報が含まれる場合は、トピックのいずれかで要求を行う必要があります。そうしないと、トピックリストの要求は拒否されます。
2.15.6. トピックの削除 リンクのコピーリンクがクリップボードにコピーされました!
削除したトピックを削除すると、操作はなく、失敗は発生しません。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- ルートレベルのアクセス。
- Ceph Object Gateway のインストール
- ユーザーアクセスキーおよびシークレットキー。
- エンドポイントパラメーター。
手順
以下の要求形式でトピックを削除します。
構文
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 Object Gateway ノードへのルートレベルのアクセスがある。
手順
ユーザーのすべてのトピックのリストを取得するには、以下を実行します。
構文
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 例
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 Object Gateway が設定されている。
手順
すべてのバケット通知設定をリスト表示します。
構文
radosgw-admin notification list --bucket=BUCKET_NAME
radosgw-admin notification list --bucket=BUCKET_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
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 例
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 の指定は任意です。指定しない場合、コマンドはそのバケットのすべての通知設定を削除します。
例
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 Object Gateway によって行われる操作に関する情報を保持し、選択したエンドポイント (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: イベントを開始したユーザーの 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. バケット情報の取得 リンクのコピーリンクがクリップボードにコピーされました!
既存のバケットのサブセットに関する情報を取得します。uid が bucket なしで指定されると、そのユーザーに属するすべてのバケットが返されます。bucket のみが指定されている場合は、その特定のバケットの情報を取得します。
ケイパビリティー
`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- 説明
- 情報を返すバケット。
- 型
- 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
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`
`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- 説明
- 削除するバケット。
- 型
- String
- 例
-
foo_bucket - 必須
- はい
purge-objects- 説明
- 削除する前に、バケットのオブジェクトを削除してください。
- 型
- Boolean
- 例
- True [False]
- 必須
- いいえ
レスポンスエンティティー
なし。
特別なエラーレスポンス
BucketNotEmpty- 説明
- 空でないバケットの削除を試行しました。
- コード
- 409 Conflict
ObjectRemovalFailed- 説明
- オブジェクトを削除できません。
- コード
- 409 Conflict
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- 説明
- リンクを解除するバケット。
- 型
- String
- 例
-
foo_bucket - 必須
- はい
uid- 説明
- バケットをリンクするユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
レスポンスエンティティー
bucket- 説明
- 単一バケット情報用のコンテナー。
- 型
- コンテナー
- Parent
- 該当なし
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
特別なエラーレスポンス
BucketUnlinkFailed- 説明
- 指定されたユーザーからバケットのリンクを解除できません。
- コード
- 409 Conflict
BucketLinkFailed- 説明
- バケットを指定されたユーザーにリンクできません。
- コード
- 409 Conflict
2.15.15. バケットのリンクを解除します。 リンクのコピーリンクがクリップボードにコピーされました!
指定されたユーザーからバケットのリンクを解除します。主にバケットの所有権を変更するのに役立ちます。
ケイパビリティー
`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- 説明
- リンクを解除するバケット。
- 型
- String
- 例
-
foo_bucket - 必須
- はい
uid- 説明
- バケットをリンクするユーザー ID。
- 型
- String
- 例
-
foo_user - 必須
- はい
レスポンスエンティティー
なし。
特別なエラーレスポンス
BucketUnlinkFailed- 説明
- 指定されたユーザーからバケットのリンクを解除できません。
- 型
- 409 Conflict
2.15.16. バケットまたはオブジェクトポリシーを取得する リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトまたはバケットのポリシーを読み取ります。
ケイパビリティー
`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- 説明
- ポリシーを読み取るバケット。
- 型
- String
- 例
-
foo_bucket - 必須
- はい
object- 説明
- ポリシーの読み取り元となるオブジェクト。
- 型
- String
- 例
-
foo.txt - 必須
- いいえ
レスポンスエンティティー
policy- 説明
- アクセス制御ポリシー。
- 型
- コンテナー
- Parent
- 該当なし
成功した場合には、オブジェクトまたはバケットポリシーを返します。
特別なエラーレスポンス
IncompleteBody- 説明
- バケットポリシー要求にバケットが指定されていないか、オブジェクトがオブジェクトポリシー要求に指定されていません。
- コード
- 400 Bad Request
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- 説明
- 削除されるオブジェクトを含むバケット。
- 型
- 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オプションは、クォータのスコープを設定します。オプションは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. バケットクォータの取得 リンクのコピーリンクがクリップボードにコピーされました!
既存のバケットのサブセットに関する情報を取得します。uid が bucket なしで指定されると、そのユーザーに属するすべてのバケットが返されます。bucket のみが指定されている場合は、その特定のバケットの情報を取得します。
ケイパビリティー
`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- 説明
- 情報を返すバケット。
- 型
- 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"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- 説明
- 情報が要求されるユーザー。
- 型
- 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`
`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- 説明
- 情報が要求されるユーザー。
- 型
- 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
第3章 Ceph Object Gateway および S3 API リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Amazon S3 データアクセスモデルと互換性のある RESTful アプリケーションプログラミングインターフェイス (API) を使用できます。Ceph Object Gateway を使用して、Red Hat Ceph Storage クラスターに保存されているバケットおよびオブジェクトを管理できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
3.1. S3 の制限 リンクのコピーリンクがクリップボードにコピーされました!
以下の制限事項を使用してください。お使いのハードウェアの選択には影響があるため、この要件を Red Hat アカウントチームと常に相談してください。
-
Amazon S3 を使用する場合の最大オブジェクトサイズ: 個別の Amazon S3 オブジェクトは、最小の 0B から最大 5TB のサイズに制限できます。1 つの
PUTでアップロードできる最大オブジェクトは 5 GB です。100MB を超えるオブジェクトの場合は、Multipart Upload ケイパビリティーの使用を検討してください。 - Amazon S3 を使用する場合の最大メタデータサイズ: オブジェクトに適用できるユーザーメタデータの合計サイズに定義された制限はありませんが、単一の HTTP リクエストは 16,000 バイトに制限されます。
- Red Hat Ceph Storage クラスターでは、S3 オブジェクトおよびメタデータを保存するために生成するデータオーバーヘッドのデータ量: 推定時間は 200-300 バイトとオブジェクト名の長さです。バージョン管理されたオブジェクトは、バージョン数に比例する領域を追加で使用します。また、マルチパートアップロードなどのトランザクション更新中に一時的なオーバーヘッドが発生しますが、これらのオーバーヘッドはガベージコレクション中にリカバリーされます。
関連情報
- 詳細は、Red Hat Ceph Storage 開発者ガイド の サポートされないヘッダーフィールド を参照してください。
3.2. S3 API を使用した Ceph Object Gateway へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Amazon S3 API の使用を開始する前に、Ceph Object Gateway および Secure Token Service (STS) へのアクセスを設定する必要があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
- RESTful クライアント。
3.2.1. S3 認証 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway への要求は、認証または認証解除のいずれかになります。Ceph Object Gateway は、認証されていないリクエストが匿名ユーザーによって送信されることを前提としています。Ceph Object Gateway は、固定 ACL をサポートしています。
ほとんどのユースケースでは、クライアントは、Java や Python Boto 用の Amazon SDK の AmazonS3Client などの既存のオープンソースライブラリーを使用します。オープンソースライブラリーでは、アクセスキーおよびシークレットキーを渡すだけで、ライブラリーはユーザーの要求ヘッダーおよび認証署名をビルドします。ただし、リクエストを作成して署名することもできます。
リクエストの認証には、アクセスキーとベース 64 でエンコードされたハッシュベースのメッセージ認証コード (HMAC) が Ceph Object Gateway サーバーに送信される前に要求に追加する必要があります。Ceph Object Gateway は S3 互換の認証を使用します。
例
上記の例では、ACCESS_KEY をアクセスキー ID の値に置き換え、その後にコロン (:) を追加します。HASH_OF_HEADER_AND_SECRET を、正規化されたヘッダー文字列のハッシュとアクセスキー ID に対応するシークレットに置き換えます。
ヘッダー文字列およびシークレットのハッシュの生成
ヘッダー文字列およびシークレットのハッシュを生成するには、以下を実行します。
- ヘッダー文字列の値を取得します。
- 要求ヘッダー文字列を正規形式に正規化します。
- SHA-1 ハッシュアルゴリズムを使用して HMAC を生成します。
-
hmacの結果を base-64 としてエンコードします。
ヘッダーを正規化
ヘッダーを正規の形式に正規化するには、以下を行います。
-
すべての
content-ヘッダーを取得します。 -
content-typeおよびcontent-md5以外のcontent-ヘッダーをすべて削除します。 -
content-ヘッダー名が小文字であることを確認します。 -
content-ヘッダーの辞書式で並べ替えます。 -
Dateヘッダー AND があることを確認します。指定した日付が、オフセットではなく GMT を使用していることを確認してください。 -
x-amz-で始まるヘッダーをすべて取得します。 -
x-amz-ヘッダーがすべて小文字であることを確認します。 -
x-amz-ヘッダーの辞書式で並べ替えます。 - 同じフィールド名の複数のインスタンスを単一のフィールドに組み合わせ、フィールド値をコンマで区切ります。
- ヘッダー値の空白文字および改行文字を、単一スペースに置き換えます。
- コロンの前後に空白を削除します。
- 各ヘッダーの後に新しい行を追加します。
- ヘッダーを要求ヘッダーにマージします。
HASH_OF_HEADER_AND_SECRET を、base-64 でエンコードされた HMAC 文字列に置き換えます。
関連情報
- 詳細は、Amazon Simple Storage Service ドキュメントの Signing and Authenticating REST Requests セクションを参照してください。
3.2.2. S3 サーバー側の暗号化 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は、S3 アプリケーションプログラムインターフェイス (API) のアップロードされたオブジェクトのサーバー側の暗号化をサポートします。サーバー側の暗号化とは、S3 クライアントが暗号化されていない形式で HTTP 経由でデータを送信し、Ceph Object Gateway はそのデータを暗号化した形式で Red Hat Ceph Storage に保存することを意味します。
Red Hat は、Static Large Object (SLO) または Dynamic Large Object (DLO) の S3 オブジェクト暗号化をサポートしません。
暗号化を使用するには、クライアントリクエストは、SSL 接続上でリクエストを送信する 必要があります。Red Hat は、Ceph Object Gateway が SSL を使用しない限り、クライアントからの S3 暗号化をサポートしません。ただし、テストの目的で、管理者は ceph config set client.rgw コマンドを使用して、rgw_crypt_require_ssl 設定を false に設定してから、Ceph Object Gateway インスタンスを再起動することで、テスト中に SSL を無効にできます。
実稼働環境では、SSL 経由で暗号化された要求を送信できない場合があります。このような場合は、サーバー側の暗号化で HTTP を使用して要求を送信します。
サーバー側の暗号化で HTTP を設定する方法は、以下の関連情報セクションを参照してください。
暗号化キーの管理には、以下の 2 つのオプションがあります。
お客様提供のキー
お客様が提供する鍵を使用する場合、S3 クライアントは暗号鍵を各リクエストと共に渡して、暗号化されたデータの読み取りまたは書き込みを行います。これらのキーを管理するのは、お客様の責任です。各オブジェクトの暗号化に使用する Ceph Object Gateway の鍵を覚えておく必要があります。
Ceph Object Gateway は、Amazon SSE-C 仕様に従って、S3 API で顧客提供のキー動作を実装します。
お客様がキー管理を処理し、S3 クライアントはキーを Ceph Object Gateway に渡すため、Ceph Object Gateway ではこの暗号化モードをサポートするための特別な設定は必要ありません。
キー管理サービス
キー管理サービスを使用する場合、セキュアなキー管理サービスはキーを格納し、Ceph Object Gateway はデータの暗号化または復号の要求に対応するためにキーをオンデマンドで取得します。
Ceph Object Gateway は、Amazon SSE-KMS 仕様に従って S3 API にキー管理サービスの動作を実装します。
現時点で、テスト済み鍵管理の実装は HashiCorp Vault および OpenStack Barbican です。ただし、OpenStack Barbican はテクノロジープレビューであるため、実稼働システムでの使用はサポートされません。
3.2.3. S3 アクセス制御リスト リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は S3 と互換性のあるアクセス制御リスト (ACL) の機能をサポートします。ACL は、ユーザーがバケットまたはオブジェクトで実行できる操作を指定するアクセス権限のリストです。それぞれの付与は、バケットに適用するか、オブジェクトに適用される場合の異なる意味を持ちます。
| パーミッション | バケット | オブジェクト |
|---|---|---|
|
| パーミッションを得たユーザーは、バケットのオブジェクトをリスト表示できます。 | パーミッションを得たユーザーは、オブジェクトを読み取りできます。 |
|
| パーミッションを得たユーザーは、バケットのオブジェクトを書き込みまたは削除できます。 | 該当なし |
|
| パーミッションを得たユーザーは、バケット ACL を読み取ることができます。 | パーミッションを得たユーザーは、オブジェクト ACL を読み取ることができます。 |
|
| パーミッションを得たユーザーは、バケット ACL を書き込めます。 | パーミッションを得たユーザーは、オブジェクト ACL に書き込めます。 |
|
| Grantee にはバケットのオブジェクトに対する完全なパーミッションがあります。 | パーミッションを得たユーザーは、オブジェクト ACL に読み取りまたは書き込みできます。 |
3.2.4. S3 を使用した Ceph Object Gateway へのアクセスの準備 リンクのコピーリンクがクリップボードにコピーされました!
ゲートウェイサーバーにアクセスする前に、Ceph Object Gateway ノードの前提条件に従う必要があります。
前提条件
- Ceph Object Gateway ソフトウェアのインストール。
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
rootで、ファイアウォールのポート8080を開きます。firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload
[root@rgw ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent [root@rgw ~]# firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Object Gateway 設定および管理ガイド で説明されているように、ゲートウェイに使用する DNS サーバーにワイルドカードを追加します。
ローカル DNS キャッシュ用のゲートウェイノードを設定することもできます。これを実行するには、以下の手順を実行します。
rootでdnsmasqをインストールおよび設定します。yum install dnsmasq echo "address=/.FQDN_OF_GATEWAY_NODE/IP_OF_GATEWAY_NODE" | tee --append /etc/dnsmasq.conf systemctl start dnsmasq systemctl enable dnsmasq
[root@rgw ~]# yum install dnsmasq [root@rgw ~]# echo "address=/.FQDN_OF_GATEWAY_NODE/IP_OF_GATEWAY_NODE" | tee --append /etc/dnsmasq.conf [root@rgw ~]# systemctl start dnsmasq [root@rgw ~]# systemctl enable dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow IP_OF_GATEWAY_NODEおよびFQDN_OF_GATEWAY_NODEは、ゲートウェイノードの IP アドレスと FQDN に置き換えます。rootで NetworkManager を停止します。systemctl stop NetworkManager systemctl disable NetworkManager
[root@rgw ~]# systemctl stop NetworkManager [root@rgw ~]# systemctl disable NetworkManagerCopy to Clipboard Copied! Toggle word wrap Toggle overflow rootとして、ゲートウェイサーバーの IP を名前空間として設定します。echo "DNS1=IP_OF_GATEWAY_NODE" | tee --append /etc/sysconfig/network-scripts/ifcfg-eth0 echo "IP_OF_GATEWAY_NODE FQDN_OF_GATEWAY_NODE" | tee --append /etc/hosts systemctl restart network systemctl enable network systemctl restart dnsmasq
[root@rgw ~]# echo "DNS1=IP_OF_GATEWAY_NODE" | tee --append /etc/sysconfig/network-scripts/ifcfg-eth0 [root@rgw ~]# echo "IP_OF_GATEWAY_NODE FQDN_OF_GATEWAY_NODE" | tee --append /etc/hosts [root@rgw ~]# systemctl restart network [root@rgw ~]# systemctl enable network [root@rgw ~]# systemctl restart dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow IP_OF_GATEWAY_NODEおよびFQDN_OF_GATEWAY_NODEは、ゲートウェイノードの IP アドレスと FQDN に置き換えます。サブドメイン要求を確認します。
ping mybucket.FQDN_OF_GATEWAY_NODE
[user@rgw ~]$ ping mybucket.FQDN_OF_GATEWAY_NODECopy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODEは、ゲートウェイノードの FQDN に置き換えます。警告ローカルの DNS キャッシュ用にゲートウェイサーバーを設定することは、テスト目的のみを目的としています。これを行った後は、外部ネットワークにはアクセスできなくなります。Red Hat Ceph Storage クラスターおよびゲートウェイノードに適切な DNS サーバーを使用することを強く推奨します。
-
Object Gateway の設定および管理ガイド に説明されているように、
S3アクセスにradosgwユーザーを慎重に作成し、生成したaccess_keyおよびsecret_keyをコピーします。S3アクセス、およびそれ以降のバケット管理タスクには、これらのキーが必要です。
3.2.5. Ruby AWS S3 を使用した Ceph Object Gateway へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Ruby プログラミング言語は、S3 アクセスに aws-s3 gem と共に使用できます。Ruby AWS::S3 で Ceph Object Gateway サーバーにアクセスするために使用されるノードで以下の手順を実行します。
前提条件
- Ceph Object Gateway へのユーザーレベルのアクセス。
- Ceph Object Gateway にアクセスするノードへのルートレベルのアクセス。
- インターネットアクセス。
手順
rubyパッケージをインストールします。yum install ruby
[root@dev ~]# yum install rubyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドは
rubyと、rubygems、ruby-libsなどの基本的な依存関係をインストールします。コマンドによってすべての依存関係がインストールされていない場合は、個別にインストールします。Ruby パッケージ
aws-s3をインストールします。gem install aws-s3
[root@dev ~]# gem install aws-s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトディレクトリーを作成します。
mkdir ruby_aws_s3 cd ruby_aws_s3
[user@dev ~]$ mkdir ruby_aws_s3 [user@dev ~]$ cd ruby_aws_s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow コネクションファイルを作成します。
vim conn.rb
[user@dev ~]$ vim conn.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow conn.rbファイルに以下のコンテンツを貼り付けます。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODEは、Ceph Object Gateway ノードの FQDN に置き換えます。MY_ACCESS_KEYおよびMY_SECRET_KEYは、Red Hat Ceph Storage Object Gateway 設定および管理ガイド に従ってS3アクセス用のradosgwユーザーを作成したときに生成された、access_keyおよびsecret_keyに置き換えます。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x conn.rb
[user@dev ~]$ chmod +x conn.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./conn.rb | echo $?
[user@dev ~]$ ./conn.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに正しく値を指定した場合は、コマンドの出力は
0になります。バケットを作成するための新規ファイルを作成します。
vim create_bucket.rb
[user@dev ~]$ vim create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.create('my-new-bucket1')#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.create('my-new-bucket1')Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x create_bucket.rb
[user@dev ~]$ chmod +x create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./create_bucket.rb
[user@dev ~]$ ./create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力が
trueの場合は、バケットmy-new-bucket1が正常に作成されたことを意味します。所有されるバケットをリスト表示するために新規ファイルを作成します。
vim list_owned_buckets.rb
[user@dev ~]$ vim list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x list_owned_buckets.rb
[user@dev ~]$ chmod +x list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./list_owned_buckets.rb
[user@dev ~]$ ./list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
my-new-bucket1 2020-01-21 10:33:19 UTC
my-new-bucket1 2020-01-21 10:33:19 UTCCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトを作成するための新規ファイルを作成します。
vim create_object.rb
[user@dev ~]$ vim create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x create_object.rb
[user@dev ~]$ chmod +x create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./create_object.rb
[user@dev ~]$ ./create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、文字列
Hello World!でhello.txtが作成されます。バケットのコンテンツをリスト表示するための新規ファイルを作成します。
vim list_bucket_content.rb
[user@dev ~]$ vim list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x list_bucket_content.rb
[user@dev ~]$ chmod +x list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./list_bucket_content.rb
[user@dev ~]$ ./list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMT
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 空のバケットを削除するために新規ファイルを作成します。
vim del_empty_bucket.rb
[user@dev ~]$ vim del_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.delete('my-new-bucket1')#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.delete('my-new-bucket1')Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x del_empty_bucket.rb
[user@dev ~]$ chmod +x del_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./del_empty_bucket.rb | echo $?
[user@dev ~]$ ./del_empty_bucket.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。注記create_bucket.rbファイルを編集し、空のバケットを作成します (例:my-new-bucket4、my-new-bucket5)。次に、空のバケットの削除を試みる前に、上記のdel_empty_bucket.rbファイルを適宜編集します。空でないバケットを削除する新規ファイルを作成します。
vim del_non_empty_bucket.rb
[user@dev ~]$ vim del_non_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.delete('my-new-bucket1', :force => true)#!/usr/bin/env ruby load 'conn.rb' AWS::S3::Bucket.delete('my-new-bucket1', :force => true)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x del_non_empty_bucket.rb
[user@dev ~]$ chmod +x del_non_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./del_non_empty_bucket.rb | echo $?
[user@dev ~]$ ./del_non_empty_bucket.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。オブジェクトを削除する新しいファイルを作成します。
vim delete_object.rb
[user@dev ~]$ vim delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
#!/usr/bin/env ruby load 'conn.rb' AWS::S3::S3Object.delete('hello.txt', 'my-new-bucket1')#!/usr/bin/env ruby load 'conn.rb' AWS::S3::S3Object.delete('hello.txt', 'my-new-bucket1')Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x delete_object.rb
[user@dev ~]$ chmod +x delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./delete_object.rb
[user@dev ~]$ ./delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、オブジェクト
hello.txtが削除されます。
3.2.6. Ruby AWS SDK を使用した Ceph Object Gateway へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
Ruby プログラミング言語は、S3 アクセスに aws-sdk gem と共に使用できます。Ruby AWS::SDK を使用して Ceph Object Gateway サーバーにアクセスするために使用されるノードで以下の手順を実行します。
前提条件
- Ceph Object Gateway へのユーザーレベルのアクセス。
- Ceph Object Gateway にアクセスするノードへのルートレベルのアクセス。
- インターネットアクセス。
手順
rubyパッケージをインストールします。yum install ruby
[root@dev ~]# yum install rubyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記上記のコマンドは
rubyと、rubygems、ruby-libsなどの基本的な依存関係をインストールします。コマンドによってすべての依存関係がインストールされていない場合は、個別にインストールします。Ruby パッケージ
aws-sdkをインストールします。gem install aws-sdk
[root@dev ~]# gem install aws-sdkCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトディレクトリーを作成します。
mkdir ruby_aws_sdk cd ruby_aws_sdk
[user@dev ~]$ mkdir ruby_aws_sdk [user@dev ~]$ cd ruby_aws_sdkCopy to Clipboard Copied! Toggle word wrap Toggle overflow コネクションファイルを作成します。
vim conn.rb
[user@dev ~]$ vim conn.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow conn.rbファイルに以下のコンテンツを貼り付けます。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODEは、Ceph Object Gateway ノードの FQDN に置き換えます。MY_ACCESS_KEYおよびMY_SECRET_KEYは、Red Hat Ceph Storage Object Gateway 設定および管理ガイド に従ってS3アクセス用のradosgwユーザーを作成したときに生成された、access_keyおよびsecret_keyに置き換えます。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x conn.rb
[user@dev ~]$ chmod +x conn.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./conn.rb | echo $?
[user@dev ~]$ ./conn.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに正しく値を指定した場合は、コマンドの出力は
0になります。バケットを作成するための新規ファイルを作成します。
vim create_bucket.rb
[user@dev ~]$ vim create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x create_bucket.rb
[user@dev ~]$ chmod +x create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./create_bucket.rb
[user@dev ~]$ ./create_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドの出力が
trueの場合は、バケットmy-new-bucket2が正常に作成されていることを意味します。所有されるバケットをリスト表示するために新規ファイルを作成します。
vim list_owned_buckets.rb
[user@dev ~]$ vim list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x list_owned_buckets.rb
[user@dev ~]$ chmod +x list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./list_owned_buckets.rb
[user@dev ~]$ ./list_owned_buckets.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
my-new-bucket2 2020-01-21 10:33:19 UTC
my-new-bucket2 2020-01-21 10:33:19 UTCCopy to Clipboard Copied! Toggle word wrap Toggle overflow オブジェクトを作成するための新規ファイルを作成します。
vim create_object.rb
[user@dev ~]$ vim create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x create_object.rb
[user@dev ~]$ chmod +x create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./create_object.rb
[user@dev ~]$ ./create_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow これで、文字列
Hello World!でhello.txtが作成されます。バケットのコンテンツをリスト表示するための新規ファイルを作成します。
vim list_bucket_content.rb
[user@dev ~]$ vim list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x list_bucket_content.rb
[user@dev ~]$ chmod +x list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./list_bucket_content.rb
[user@dev ~]$ ./list_bucket_content.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMT
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 空のバケットを削除するために新規ファイルを作成します。
vim del_empty_bucket.rb
[user@dev ~]$ vim del_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x del_empty_bucket.rb
[user@dev ~]$ chmod +x del_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./del_empty_bucket.rb | echo $?
[user@dev ~]$ ./del_empty_bucket.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。注記create_bucket.rbファイルを編集し、空のバケットを作成します (例:my-new-bucket6、my-new-bucket7)。次に、空のバケットの削除を試みる前に、上記のdel_empty_bucket.rbファイルを適宜編集します。空でないバケットを削除する新規ファイルを作成します。
vim del_non_empty_bucket.rb
[user@dev ~]$ vim del_non_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x del_non_empty_bucket.rb
[user@dev ~]$ chmod +x del_non_empty_bucket.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./del_non_empty_bucket.rb | echo $?
[user@dev ~]$ ./del_non_empty_bucket.rb | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。オブジェクトを削除する新しいファイルを作成します。
vim delete_object.rb
[user@dev ~]$ vim delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
ファイルを実行可能にします。
chmod +x delete_object.rb
[user@dev ~]$ chmod +x delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドを実行します。
./delete_object.rb
[user@dev ~]$ ./delete_object.rbCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、オブジェクト
hello.txtが削除されます。
3.2.7. PHP を使用した Ceph Object Gateway へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
S3 アクセスには PHP スクリプトを使用できます。この手順では、バケットやオブジェクトの削除など、さまざまなタスクを実行する PHP スクリプトの例を提供します。
以下は、php v5.4.16 および aws-sdk v2.8.24 に対してテストされています。
前提条件
- 開発ワークステーションへのルートレベルのアクセス。
- インターネットアクセス。
手順
phpパッケージをインストールします。yum install php
[root@dev ~]# yum install phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
PHP 用に
aws-sdkの zip アーカイブを ダウンロード し、デプロイメントします。 プロジェクトディレクトリーを作成します。
mkdir php_s3 cd php_s3
[user@dev ~]$ mkdir php_s3 [user@dev ~]$ cd php_s3Copy to Clipboard Copied! Toggle word wrap Toggle overflow デプロイメントした
awsディレクトリーをプロジェクトのディレクトリーにコピーします。以下に例を示します。cp -r ~/Downloads/aws/ ~/php_s3/
[user@dev ~]$ cp -r ~/Downloads/aws/ ~/php_s3/Copy to Clipboard Copied! Toggle word wrap Toggle overflow コネクションファイルを作成します。
vim conn.php
[user@dev ~]$ vim conn.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow conn.phpファイルに以下のコンテンツを貼り付けます。構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow FQDN_OF_GATEWAY_NODEは、ゲートウェイノードの FQDN に置き換えます。MY_ACCESS_KEYおよびMY_SECRET_KEYは、Red Hat Ceph Storage Object Gateway 設定および管理ガイド に従ってS3アクセス用のradosgwユーザーを作成したときに生成された、access_keyおよびsecret_keyに置き換えます。PATH_TO_AWSは、phpプロジェクトディレクトリーにコピーした、デプロイメントしたawsディレクトリーへの絶対パスに置き換えます。ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f conn.php | echo $?
[user@dev ~]$ php -f conn.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルに正しく値を指定した場合は、コマンドの出力は
0になります。バケットを作成するための新規ファイルを作成します。
vim create_bucket.php
[user@dev ~]$ vim create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しいファイルに以下の内容を貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f create_bucket.php
[user@dev ~]$ php -f create_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 所有されるバケットをリスト表示するために新規ファイルを作成します。
vim list_owned_buckets.php
[user@dev ~]$ vim list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f list_owned_buckets.php
[user@dev ~]$ php -f list_owned_buckets.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
my-new-bucket3 2020-01-21 10:33:19 UTC
my-new-bucket3 2020-01-21 10:33:19 UTCCopy to Clipboard Copied! Toggle word wrap Toggle overflow まず
hello.txtという名前のソースファイルを作成するオブジェクトを作成します。echo "Hello World!" > hello.txt
[user@dev ~]$ echo "Hello World!" > hello.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい php ファイルを作成します。
vim create_object.php
[user@dev ~]$ vim create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f create_object.php
[user@dev ~]$ php -f create_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、バケット
my-new-bucket3でオブジェクトhello.txtが作成されます。バケットのコンテンツをリスト表示するための新規ファイルを作成します。
vim list_bucket_content.php
[user@dev ~]$ vim list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f list_bucket_content.php
[user@dev ~]$ php -f list_bucket_content.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力は以下のようになります。
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMT
hello.txt 12 Fri, 22 Jan 2020 15:54:52 GMTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 空のバケットを削除するために新規ファイルを作成します。
vim del_empty_bucket.php
[user@dev ~]$ vim del_empty_bucket.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f del_empty_bucket.php | echo $?
[user@dev ~]$ php -f del_empty_bucket.php | echo $?Copy to Clipboard Copied! Toggle word wrap Toggle overflow バケットが正常に削除されると、コマンドは
0を出力として返します。注記create_bucket.phpファイルを編集し、空のバケットを作成します (例:my-new-bucket4、my-new-bucket5)。次に、空のバケットの削除を試みる前に、上記のdel_empty_bucket.phpファイルを適宜編集します。重要空でないバケットの削除は、現在 PHP 2 以降のバージョンの
aws-sdkではサポートされていません。オブジェクトを削除する新しいファイルを作成します。
vim delete_object.php
[user@dev ~]$ vim delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコンテンツをファイルに貼り付けます。
構文
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファイルを保存して、エディターを終了します。
コマンドを実行します。
php -f delete_object.php
[user@dev ~]$ php -f delete_object.phpCopy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、オブジェクト
hello.txtが削除されます。
3.2.8. セキュアなトークンサービス リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services の Secure Token Service (STS) は、ユーザーを認証するための一時セキュリティー認証情報のセットを返します。
Red Hat Ceph Storage Object Gateway は、アイデンティティーおよびアクセス管理 (IAM) 用の Amazon STS アプリケーションプログラミングインターフェイス (API) のサブセットをサポートします。
ユーザーは最初に STS に対して認証し、後続の要求で使用できる有効期間の短い S3 アクセスキーとシークレットキーを受け取ります。
Red Hat Ceph Storage は、OIDC プロバイダーを設定してシングルサインオンと統合することで、S3 ユーザーを認証できます。この機能により、Object Storage ユーザーは、ローカルの Ceph Object Gateway データベースではなく、エンタープライズアイデンティティープロバイダーに対して認証できるようになります。たとえば、SSO がバックエンドのエンタープライズ IDP に接続されている場合、Object Storage ユーザーはエンタープライズ認証情報を使用して認証して、Ceph Object Gateway S3 エンドポイントにアクセスできます。
STS を IAM ロールポリシー機能と併用することで、細かく調整された認可ポリシーを作成してデータへのアクセスを制御できます。これにより、オブジェクトストレージデータにロールベースのアクセス制御 (RBAC) または属性ベースのアクセス制御 (ABAC) 認可モデルを実装できるようになり、どのユーザーがデータにアクセスできるかを完全に制御できるようになります。
STS を使用して S3 リソースにアクセスするワークフローを簡略化する
- ユーザーは、Red Hat Ceph Storage 内の S3 リソースにアクセスしたいと考えています。
- ユーザーは SSO プロバイダーに対して認証する必要があります。
- SSO プロバイダーは IDP と統合され、ユーザーの認証情報が有効か確認し、ユーザーが認証されると SSO がユーザーにトークンを提供します。
- ユーザーは、SSO によって提供されたトークンを使用して Ceph Object Gateway STS エンドポイントにアクセスし、S3 リソースへのアクセスをユーザーに提供する IAM ロールを引き受けるように要求します。
- Red Hat Ceph Storage ゲートウェイはユーザートークンを受け取り、SSO にトークンの検証を要求します。
- SSO がトークンを検証すると、ユーザーはロールを引き受けることができます。STS を通じて、ユーザーは一時的なアクセスと秘密鍵を取得し、S3 リソースにアクセスできるようになります。
- ユーザーが引き受けた IAM ロールにアタッチされたポリシーに応じて、ユーザーは S3 リソースセットにアクセスできます。
- たとえば、バケット A を読み取り、バケット B に書き込みます。
関連情報
- Amazon Web Services Secure Token Service の Welcome ページ。
- STS Lite および Keystone の詳細は、Red Hat Ceph Storage 開発者ガイド の Keystone での STS Lite の設定および使用 セクションを参照してください。
- STS Lite および Keystone の制限の詳細は、Red Hat Ceph Storage 開発者ガイド の Keystone で STS Lite を使用するための制限の回避 を参照してください。
3.2.8.1. Secure Token Service アプリケーションのプログラミングインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は、以下の Secure Token Service (STS) アプリケーションプログラミングインターフェイス (API) を実装します。
AssumeRole
この API は、アカウント間のアクセスのための一時的な認証情報のセットを返します。これらの一時的な認証情報により、Role と、AssumeRole API で割り当てられるポリシーの両方に割り当てられるパーミッションポリシーを使用することができます。RoleArn および RoleSessionName リクエストパラメーターは必須ですが、他の要求パラメーターは任意です。
RoleArn- 説明
- 長さが 20 ~ 2048 文字の Amazon Resource Name (ARN) について想定するロール。
- 型
- String
- 必須
- はい
RoleSessionName- 説明
-
仮定するロールセッション名を特定します。ロールセッション名は、異なるプリンシパルや別の理由がロールを想定する場合にセッションを一意に識別できます。このパラメーターの値は、2 文字から 64 文字までです。
=、,、.、@、および-文字は使用できますが、スペースは使用できません。 - 型
- String
- 必須
- はい
ポリシー- 説明
- インラインセッションで使用する JSON 形式の ID およびアクセス管理ポリシー (IAM)。このパラメーターの値は 1 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
DurationSeconds- 説明
-
セッションの期間 (秒単位)。最小値は
900秒で、最大値は43200秒です。デフォルト値は3600秒です。 - 型
- Integer
- 必須
- いいえ
ExternalId- 説明
- 別のアカウントのロールを想定する場合には、利用可能な場合は一意の外部識別子を指定します。このパラメーターの値は、2 文字から 1224 文字までになります。
- 型
- String
- 必須
- いいえ
SerialNumber- 説明
- 関連付けられたマルチファクター認証 (MFA) デバイスからのユーザーの識別番号。パラメーターの値は、9 文字から 256 文字までのハードウェアデバイスまたは仮想デバイスのシリアル番号になります。
- 型
- String
- 必須
- いいえ
TokenCode- 説明
- 信頼ポリシーに MFA が必要な場合は、マルチファクター認証 (MFA) デバイスから生成された値。MFA デバイスが必要で、このパラメーターの値が空または期限切れの場合には、AssumeRole の呼び出しは "access denied" エラーメッセージを返します。このパラメーターの値には、固定長は 6 文字です。
- 型
- String
- 必須
- いいえ
AssumeRoleWithWebIdentity
この API は、OpenID Connect や OAuth 2.0 アイデンティティープロバイダーなどのアプリケーションによって認証されたユーザーの一時認証情報のセットを返します。RoleArn および RoleSessionName リクエストパラメーターは必須ですが、他の要求パラメーターは任意です。
RoleArn- 説明
- 長さが 20 ~ 2048 文字の Amazon Resource Name (ARN) について想定するロール。
- 型
- String
- 必須
- はい
RoleSessionName- 説明
-
仮定するロールセッション名を特定します。ロールセッション名は、異なるプリンシパルや別の理由がロールを想定する場合にセッションを一意に識別できます。このパラメーターの値は、2 文字から 64 文字までです。
=、,、.、@、および-文字は使用できますが、スペースは使用できません。 - 型
- String
- 必須
- はい
ポリシー- 説明
- インラインセッションで使用する JSON 形式の ID およびアクセス管理ポリシー (IAM)。このパラメーターの値は 1 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
DurationSeconds- 説明
-
セッションの期間 (秒単位)。最小値は
900秒で、最大値は43200秒です。デフォルト値は3600秒です。 - 型
- Integer
- 必須
- いいえ
ProviderId- 説明
- アイデンティティープロバイダーからのドメイン名の完全修飾ホストコンポーネント。このパラメーターの値は、長さが 4 ~ 2048 文字の OAuth 2.0 アクセストークンでのみ有効です。
- 型
- String
- 必須
- いいえ
WebIdentityToken- 説明
- アイデンティティープロバイダーから提供される OpenID Connect アイデンティティートークンまたは OAuth 2.0 アクセストークン。このパラメーターの値は、4 文字から 2048 文字までです。
- 型
- String
- 必須
- いいえ
関連情報
- 詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service API の使用例 セクションを参照してください。
- Amazon Web Services Security Token Service (AssumeRole アクション)
- Amazon Web Services Security Token Service (AssumeRoleWithWebIdentity アクション)
3.2.8.2. セキュアなトークンサービスの設定 リンクのコピーリンクがクリップボードにコピーされました!
rgw_sts_key および rgw_s3_auth_use_sts オプションを設定して、Ceph Object Gateway で使用する Ceph Object Gateway (STS) を設定します。
S3 と STS API は同じ名前空間に共存し、いずれも Ceph Object Gateway の同じエンドポイントからアクセスできます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- 実行中の Ceph Object Gateway。
- Ceph Manager ノードへのルートレベルのアクセス。
手順
Ceph Object Gateway クライアントに以下の設定オプションを設定します。
構文
ceph config set RGW_CLIENT_NAME rgw_sts_key STS_KEY ceph config set RGW_CLIENT_NAME rgw_s3_auth_use_sts true
ceph config set RGW_CLIENT_NAME rgw_sts_key STS_KEY ceph config set RGW_CLIENT_NAME rgw_s3_auth_use_sts trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_sts_keyは、セッショントークンを暗号化または復号化するための STS キーであり、正確に 16 進数の 16 文字です。重要STS キーは英数字である必要があります。
例
ceph config set client.rgw rgw_sts_key 7f8fd8dd4700mnop ceph config set client.rgw rgw_s3_auth_use_sts true
[root@mgr ~]# ceph config set client.rgw rgw_sts_key 7f8fd8dd4700mnop [root@mgr ~]# ceph config set client.rgw rgw_s3_auth_use_sts trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 追加したキーを有効にするには、Ceph Object Gateway を再起動します。
注記NAME列のceph orch psコマンドの出力を使用して、SERVICE_TYPE.ID 情報を取得します。ストレージクラスター内の個別のノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.service
systemctl restart ceph-CLUSTER_ID@SERVICE_TYPE.ID.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.service
[root@host01 ~]# systemctl restart ceph-c4b34c6f-8365-11ba-dc31-529020a7702d@rgw.realm.zone.host01.gwasto.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージクラスター内のすべてのノードで Ceph Object Gateway を再起動するには、以下を実行します。
構文
ceph orch restart SERVICE_TYPE
ceph orch restart SERVICE_TYPECopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
[ceph: root@host01 /]# ceph orch restart rgw
[ceph: root@host01 /]# ceph orch restart rgwCopy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- STS API に関する詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service アプリケーションのプログラミングインターフェイス セクションを参照してください。
- Ceph 設定データベースの使用の詳細は、Red Hat Ceph Storage 設定ガイド の Ceph 設定の基本 の章を参照してください。
3.2.8.3. OpenID Connect プロバイダー用のユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway と OpenID Connect Provider との間の信頼を確立するには、ユーザーエンティティーとロール信頼ポリシーを作成します。
前提条件
- Ceph Object Gateway ノードへのユーザーレベルのアクセスがある。
- セキュアなトークンサービスが設定されている。
手順
新しい Ceph ユーザーを作成します。
構文
radosgw-admin --uid USER_NAME --display-name "DISPLAY_NAME" --access_key USER_NAME --secret SECRET user create
radosgw-admin --uid USER_NAME --display-name "DISPLAY_NAME" --access_key USER_NAME --secret SECRET user createCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create
[user@rgw ~]$ radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user createCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ceph ユーザー機能を設定します。
構文
radosgw-admin caps add --uid="USER_NAME" --caps="oidc-provider=*"
radosgw-admin caps add --uid="USER_NAME" --caps="oidc-provider=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin caps add --uid="TESTER" --caps="oidc-provider=*"
[user@rgw ~]$ radosgw-admin caps add --uid="TESTER" --caps="oidc-provider=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow Secure Token Service (STS) API を使用してロール信頼ポリシーに条件を追加します。
構文
"{\"Version\":\"2020-01-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Federated\":[\"arn:aws:iam:::oidc-provider/IDP_URL\"]},\"Action\":[\"sts:AssumeRoleWithWebIdentity\"],\"Condition\":{\"StringEquals\":{\"IDP_URL:app_id\":\"AUD_FIELD\"\}\}\}\]\}""{\"Version\":\"2020-01-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Federated\":[\"arn:aws:iam:::oidc-provider/IDP_URL\"]},\"Action\":[\"sts:AssumeRoleWithWebIdentity\"],\"Condition\":{\"StringEquals\":{\"IDP_URL:app_id\":\"AUD_FIELD\"\}\}\}\]\}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要上記の構文例の
app_idは、着信トークンのAUD_FIELDフィールドと一致させる必要があります。
関連情報
- Amazon の Web サイトの Obtaining the Root CA Thumbprint for an OpenID Connect Identity Provider を参照してください。
- STS API に関する詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service アプリケーションのプログラミングインターフェイス セクションを参照してください。
- 詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service API の使用例 セクションを参照してください。
3.2.8.4. OpenID Connect プロバイダーのサムプリントの取得 リンクのコピーリンクがクリップボードにコピーされました!
OpenID Connect プロバイダー (IDP) の設定ドキュメントを取得します。
OIDC プロトコル標準に準拠する SSO は、Ceph Object Gateway で動作すると想定されています。Red Hat は、次の SSO プロバイダーを使用してテストしました。
- Red Hat Single Sign-On
- Keycloak
前提条件
-
opensslパッケージおよびcurlパッケージがインストールされている。
手順
IDP の URL から設定ドキュメントを取得します。
構文
curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "IDP_URL:8000/CONTEXT/realms/REALM/.well-known/openid-configuration" \ | jq .curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "IDP_URL:8000/CONTEXT/realms/REALM/.well-known/openid-configuration" \ | jq .Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "http://www.example.com:8000/auth/realms/quickstart/.well-known/openid-configuration" \ | jq .[user@client ~]$ curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "http://www.example.com:8000/auth/realms/quickstart/.well-known/openid-configuration" \ | jq .Copy to Clipboard Copied! Toggle word wrap Toggle overflow IDP 証明書を取得します。
構文
curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "IDP_URL/CONTEXT/realms/REALM/protocol/openid-connect/certs" \ | jq .curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "IDP_URL/CONTEXT/realms/REALM/protocol/openid-connect/certs" \ | jq .Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "http://www.example.com/auth/realms/quickstart/protocol/openid-connect/certs" \ | jq .[user@client ~]$ curl -k -v \ -X GET \ -H "Content-Type: application/x-www-form-urlencoded" \ "http://www.example.com/auth/realms/quickstart/protocol/openid-connect/certs" \ | jq .Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記x5c証明書は、SSO プロバイダーに応じて、/certsパスまたは/jwksパスで使用できます。直前のコマンドから "x5c" 応答の結果をコピーし、それを
certificate.crtファイルに貼り付けます。冒頭に—–BEGIN CERTIFICATE—–、末尾に—–END CERTIFICATE—–を含めます。例
-----BEGIN CERTIFICATE----- MIIDYjCCAkqgAwIBAgIEEEd2CDANBgkqhkiG9w0BAQsFADBzMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkwBwYDVQQKEwAxCTAHBgNVBAsTADE6MDgGA1UEAxMxYXV0aHN2Yy1pbmxpbmVtZmEuZGV2LnZlcmlmeS5pYm1jbG91ZHNlY3VyaXR5LmNvbTAeFw0yMTA3MDUxMzU2MzZaFw0zMTA3MDMxMzU2MzZaMHMxCTAHBgNVBAYTADEJMAcGA1UECBMAMQkwBwYDVQQHEwAxCTAHBgNVBAoTADEJMAcGA1UECxMAMTowOAYDVQQDEzFhdXRoc3ZjLWlubGluZW1mYS5kZXYudmVyaWZ5LmlibWNsb3Vkc2VjdXJpdHkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphyu3HaAZ14JH/EXetZxtNnerNuqcnfxcmLhBz9SsTlFD59ta+BOVlRnK5SdYEqO3ws2iGEzTvC55rczF+hDVHFZEBJLVLQe8ABmi22RAtG1P0dA/Bq8ReFxpOFVWJUBc31QM+ummW0T4yw44wQJI51LZTMz7PznB0ScpObxKe+frFKd1TCMXPlWOSzmTeFYKzR83Fg9hsnz7Y8SKGxi+RoBbTLT+ektfWpR7O+oWZIf4INe1VYJRxZvn+qWcwI5uMRCtQkiMknc3Rj6Eupiqq6FlAjDs0p//EzsHAlW244jMYnHCGq0UP3oE7vViLJyiOmZw7J3rvs3m9mOQiPLoQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCeVqAzSh7Tp8LgaTIFUuRbdjBAKXC9Nw3+pRBHoiUTdhqO3ualyGih9m/js/clb8Vq/39zl0VPeaslWl2NNX9zaK7xo+ckVIOY3ucCaTC04ZUn1KzZu/7azlN0C5XSWg/CfXgU2P3BeMNzc1UNY1BASGyWn2lEplIVWKLaDZpNdSyyGyaoQAIBdzxeNCyzDfPCa2oSO8WH1czmFiNPqR5kdknHI96CmsQdi+DT4jwzVsYgrLfcHXmiWyIAb883hR3Pobp+Bsw7LUnxebQ5ewccjYmrJzOk5Wb5FpXBhaJH1B3AEd6RGalRUyc/zUKdvEy0nIRMDS9x2BP3NVvZSADD -----END CERTIFICATE-----
-----BEGIN CERTIFICATE----- MIIDYjCCAkqgAwIBAgIEEEd2CDANBgkqhkiG9w0BAQsFADBzMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkwBwYDVQQKEwAxCTAHBgNVBAsTADE6MDgGA1UEAxMxYXV0aHN2Yy1pbmxpbmVtZmEuZGV2LnZlcmlmeS5pYm1jbG91ZHNlY3VyaXR5LmNvbTAeFw0yMTA3MDUxMzU2MzZaFw0zMTA3MDMxMzU2MzZaMHMxCTAHBgNVBAYTADEJMAcGA1UECBMAMQkwBwYDVQQHEwAxCTAHBgNVBAoTADEJMAcGA1UECxMAMTowOAYDVQQDEzFhdXRoc3ZjLWlubGluZW1mYS5kZXYudmVyaWZ5LmlibWNsb3Vkc2VjdXJpdHkuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAphyu3HaAZ14JH/EXetZxtNnerNuqcnfxcmLhBz9SsTlFD59ta+BOVlRnK5SdYEqO3ws2iGEzTvC55rczF+hDVHFZEBJLVLQe8ABmi22RAtG1P0dA/Bq8ReFxpOFVWJUBc31QM+ummW0T4yw44wQJI51LZTMz7PznB0ScpObxKe+frFKd1TCMXPlWOSzmTeFYKzR83Fg9hsnz7Y8SKGxi+RoBbTLT+ektfWpR7O+oWZIf4INe1VYJRxZvn+qWcwI5uMRCtQkiMknc3Rj6Eupiqq6FlAjDs0p//EzsHAlW244jMYnHCGq0UP3oE7vViLJyiOmZw7J3rvs3m9mOQiPLoQIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQCeVqAzSh7Tp8LgaTIFUuRbdjBAKXC9Nw3+pRBHoiUTdhqO3ualyGih9m/js/clb8Vq/39zl0VPeaslWl2NNX9zaK7xo+ckVIOY3ucCaTC04ZUn1KzZu/7azlN0C5XSWg/CfXgU2P3BeMNzc1UNY1BASGyWn2lEplIVWKLaDZpNdSyyGyaoQAIBdzxeNCyzDfPCa2oSO8WH1czmFiNPqR5kdknHI96CmsQdi+DT4jwzVsYgrLfcHXmiWyIAb883hR3Pobp+Bsw7LUnxebQ5ewccjYmrJzOk5Wb5FpXBhaJH1B3AEd6RGalRUyc/zUKdvEy0nIRMDS9x2BP3NVvZSADD -----END CERTIFICATE-----Copy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書のサムプリントを取得します。
構文
openssl x509 -in CERT_FILE -fingerprint -noout
openssl x509 -in CERT_FILE -fingerprint -nooutCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
openssl x509 -in certificate.crt -fingerprint -noout
[user@client ~]$ openssl x509 -in certificate.crt -fingerprint -noout SHA1 Fingerprint=F7:D7:B3:51:5D:D0:D3:19:DD:21:9A:43:A9:EA:72:7A:D6:06:52:87Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SHA1 フィンガープリントからコロンをすべて削除し、IAM 要求で IDP エンティティーを作成するための入力として使用します。
関連情報
- Amazon の Web サイトの Obtaining the Root CA Thumbprint for an OpenID Connect Identity Provider を参照してください。
- STS API に関する詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service アプリケーションのプログラミングインターフェイス セクションを参照してください。
- 詳細は、Red Hat Ceph Storage 開発者ガイド の Secure Token Service API の使用例 セクションを参照してください。
3.2.8.5. OpenID Connect プロバイダーの登録 リンクのコピーリンクがクリップボードにコピーされました!
OpenID Connect プロバイダー (IDP) の設定ドキュメントを登録します。
前提条件
-
opensslパッケージおよびcurlパッケージがインストールされている。 - セキュアなトークンサービスが設定されている。
- OIDC プロバイダー用にユーザーが作成されている。
- OIDC のサムプリントを取得している。
手順
トークンから URL を抽出します。
例
bash check_token_isv.sh | jq .iss
[root@host01 ~]# bash check_token_isv.sh | jq .iss "https://keycloak-sso.apps.ocp.example.com/auth/realms/ceph"Copy to Clipboard Copied! Toggle word wrap Toggle overflow OIDC プロバイダーを Ceph Object Gateway に登録します。
例
aws --endpoint https://cephproxy1.example.com:8443 iam create-open-id-connect-provider --url https://keycloak-sso.apps.ocp.example.com/auth/realms/ceph --thumbprint-list 00E9CFD697E0B16DD13C86B0FFDC29957E5D24DF
[root@host01 ~]# aws --endpoint https://cephproxy1.example.com:8443 iam create-open-id-connect-provider --url https://keycloak-sso.apps.ocp.example.com/auth/realms/ceph --thumbprint-list 00E9CFD697E0B16DD13C86B0FFDC29957E5D24DFCopy to Clipboard Copied! Toggle word wrap Toggle overflow OIDC プロバイダーが Ceph Object Gateway に追加されていることを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.8.6. IAM ロールとポリシーの作成 リンクのコピーリンクがクリップボードにコピーされました!
IAM ロールとポリシーを作成します。
前提条件
-
opensslパッケージおよびcurlパッケージがインストールされている。 - セキュアなトークンサービスが設定されている。
- OIDC プロバイダー用にユーザーが作成されている。
- OIDC のサムプリントを取得している。
- Ceph Object Gateway の OIDC プロバイダーが登録されている。
手順
JWT トークンを取得して検証します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow トークンを確認します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、jq フィルターがトークンのサブフィールドによって使用され、ceph に設定されます。
ロールのプロパティーを含む JSON ファイルを作成します。
StatementをAllowに設定し、ActionをAssumeRoleWithWebIdentityに設定します。sub:cephの条件に一致する JWT トークンを持つすべてのユーザーにアクセスを許可します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JSON ファイルを使用して Ceph Object Gateway ロールを作成します。
例
radosgw-admin role create --role-name rgwadmins \ --assume-role-policy-doc=$(jq -rc . /root/role-rgwadmins.json)
[root@host01 ~]# radosgw-admin role create --role-name rgwadmins \ --assume-role-policy-doc=$(jq -rc . /root/role-rgwadmins.json)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
.
3.2.8.7. S3 リソースへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
S3 リソースにアクセスするには、STS 認証情報を使用して Assume ロールを確認します。
前提条件
-
opensslパッケージおよびcurlパッケージがインストールされている。 - セキュアなトークンサービスが設定されている。
- OIDC プロバイダー用にユーザーが作成されている。
- OIDC のサムプリントを取得している。
- Ceph Object Gateway の OIDC プロバイダーが登録されている。
- IAM ロールとポリシーが作成されている。
手順
以下は、一時的なアクセスとシークレットキーを取得して S3 リソースにアクセスするための、STS を使用した assume ロールの例です。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow スクリプトを実行します。
例
source ./test-assume-role.sh s3admin passw0rd rgwadmins aws s3 mb s3://testbucket aws s3 ls
[root@host01 ~]# source ./test-assume-role.sh s3admin passw0rd rgwadmins [root@host01 ~]# aws s3 mb s3://testbucket [root@host01 ~]# aws s3 lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2.9. Keystone での STS Lite の設定および使用 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Amazon Secure Token Service (STS) と S3 API は、同じ名前空間に共存します。STS オプションは、Keystone オプションと組み合わせて設定できます。
S3 と STS の API の両方に、Ceph Object Gateway の同じエンドポイントを使用してアクセスできます。
前提条件
- Red Hat Ceph Storage 5.0 以降
- 実行中の Ceph Object Gateway。
- Boto Python モジュールのバージョン 3 以降のインストール
- Ceph Manager ノードへのルートレベルのアクセス。
- OpenStack ノードへのユーザーレベルのアクセス。
手順
Ceph Object Gateway クライアントに以下の設定オプションを設定します。
構文
ceph config set RGW_CLIENT_NAME rgw_sts_key STS_KEY ceph config set RGW_CLIENT_NAME rgw_s3_auth_use_sts true
ceph config set RGW_CLIENT_NAME rgw_sts_key STS_KEY ceph config set RGW_CLIENT_NAME rgw_s3_auth_use_sts trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow rgw_sts_keyは、セッショントークンを暗号化または復号化するための STS キーであり、正確に 16 進数の 16 文字です。重要STS キーは英数字である必要があります。
例
ceph config set client.rgw rgw_sts_key 7f8fd8dd4700mnop ceph config set client.rgw rgw_s3_auth_use_sts true
[root@mgr ~]# ceph config set client.rgw rgw_sts_key 7f8fd8dd4700mnop [root@mgr ~]# ceph config set client.rgw rgw_s3_auth_use_sts trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenStack ノードで EC2 認証情報を生成します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 生成された認証情報を使用して、GetSessionToken API を使用して一時的なセキュリティー認証情報のセットを取得します。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 一時認証情報の取得は、S3 呼び出しの作成に使用できます。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい S3Access ロールを作成し、ポリシーを設定します。
管理 CAPS でユーザーを割り当てます。
構文
radosgw-admin caps add --uid="USER" --caps="roles=*"
radosgw-admin caps add --uid="USER" --caps="roles=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin caps add --uid="gwadmin" --caps="roles=*"
[root@mgr ~]# radosgw-admin caps add --uid="gwadmin" --caps="roles=*"Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access ロールを作成します。
構文
radosgw-admin role create --role-name=ROLE_NAME --path=PATH --assume-role-policy-doc=TRUST_POLICY_DOC
radosgw-admin role create --role-name=ROLE_NAME --path=PATH --assume-role-policy-doc=TRUST_POLICY_DOCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}[root@mgr ~]# radosgw-admin role create --role-name=S3Access --path=/application_abc/component_xyz/ --assume-role-policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Principal\":\{\"AWS\":\[\"arn:aws:iam:::user/TESTER\"\]\},\"Action\":\[\"sts:AssumeRole\"\]\}\]\}Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3Access ロールにパーミッションポリシーを割り当てます。
構文
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOC
radosgw-admin role-policy put --role-name=ROLE_NAME --policy-name=POLICY_NAME --policy-doc=PERMISSION_POLICY_DOCCopy to Clipboard Copied! Toggle word wrap Toggle overflow 例
radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}[root@mgr ~]# radosgw-admin role-policy put --role-name=S3Access --policy-name=Policy --policy-doc=\{\"Version\":\"2012-10-17\",\"Statement\":\[\{\"Effect\":\"Allow\",\"Action\":\[\"s3:*\"\],\"Resource\":\"arn:aws:s3:::example_bucket\"\}\]\}Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
別のユーザーが
gwadminユーザーのロールを想定できるようになりました。たとえば、gwuserユーザーは、gwadminユーザーのパーミッションを想定できます。 仮定ユーザーの
access_keyおよびsecret_keyの値を書き留めておきます。例
radosgw-admin user info --uid=gwuser | grep -A1 access_key
[root@mgr ~]# radosgw-admin user info --uid=gwuser | grep -A1 access_keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AssumeRole API 呼び出しを使用し、仮定のユーザーから
access_keyおよびsecret_keyの値を提供します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要AssumeRole API には S3Access ロールが必要です。
関連情報
- Boto Python モジュールのインストールに関する詳細は、Red Hat Ceph Storage Object Gateway ガイド の S3 アクセスのテスト セクションを参照してください。
- 詳細は、Red Hat Ceph Storage Object Gateway ガイド の ユーザーの作成 セクションを参照してください。
3.2.10. Keystone で STS Lite を使用するための制限の回避 (テクノロジープレビュー) リンクのコピーリンクがクリップボードにコピーされました!
Keystone の制限は、Secure Token Service (STS) 要求をサポートしないことです。もう 1 つの制限は、ペイロードハッシュがリクエストに含まれていないことです。この 2 つの制限を回避するには、Boto 認証コードを変更する必要があります。
前提条件
- 稼働中の Red Hat Ceph Storage クラスター (バージョン 5.0 以降)。
- 実行中の Ceph Object Gateway。
- Boto Python モジュールのバージョン 3 以降のインストール
手順
Boto の
auth.pyファイルを開いて編集します。以下の 4 つの行をコードブロックに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の 2 つの行をコードブロックに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
関連情報
- Boto Python モジュールのインストールに関する詳細は、Red Hat Ceph Storage Object Gateway ガイド の S3 アクセスのテスト セクションを参照してください。
3.3. S3 バケット操作 リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Ceph Object Gateway 経由で Amazon S3 アプリケーションプログラミングインターフェイス (API) を使用してバケット操作を実行できます。
以下の表は、バケットの Amazon S3 機能操作と関数のサポートステータスを示しています。
| 機能 | 状態 | 注記 |
|---|---|---|
| サポート対象 | ||
| サポート対象 | 固定 ACL のさまざまなセット。 | |
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| 一部サポート対象 |
| |
| 一部サポート対象 |
| |
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | 固定 ACL のさまざまなセット | |
| サポート対象 | 固定 ACL のさまざまなセット | |
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| 一部サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 |
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
3.3.1. S3 create bucket notifications リンクのコピーリンクがクリップボードにコピーされました!
バケットレベルでバケット通知を作成します。通知設定には、Red Hat Ceph Storage Object Gateway S3 イベント、ObjectCreated、ObjectRemoved、および ObjectLifecycle:Expiration があります。これらは公開され、バケット通知を送信する宛先である必要があります。バケット通知は S3 オペレーションです。
s3:objectCreate、s3:objectRemove、 および s3:ObjectLifecycle:Expiration イベントのバケット通知を作成するには、PUT を使用します。
例
Red Hat は、ObjectCreate イベント (例: put、post、multipartUpload、および copy) をサポートします。また、Red Hat は、object_delete、s3_multi_object_delete などの ObjectRemove イベントをサポートしています。
リクエストエンティティー
NotificationConfiguration- 説明
-
TopicConfigurationエンティティーのリスト。 - 型
- コンテナー
- 必須
- はい
TopicConfiguration- 説明
-
イベントエンティティーの
Id、Topic、およびlist。 - 型
- コンテナー
- 必須
- はい
id- 説明
- 通知の名前。
- 型
- String
- 必須
- はい
Topic- 説明
トピック Amazon リソース名 (ARN)
注記トピックは事前に作成する必要があります。
- 型
- String
- 必須
- はい
Event- 説明
- サポートされるイベントのリスト。複数のイベントエンティティーを使用できます。省略すると、すべてのイベントが処理されます。
- 型
- String
- 必須
- いいえ
Filter- 説明
-
S3Key、S3Metadata、およびS3Tagsエンティティー。 - 型
- コンテナー
- 必須
- いいえ
S3Key- 説明
-
オブジェクトキーに基づくフィルタリングの
FilterRuleエンティティーの一覧。リストには最大で 3 つのエンティティーを含めることができます。たとえば、Nameはprefix、suffix、またはregexになります。リスト内のフィルタールールはすべて、フィルターが一致するために一致している必要があります。 - 型
- コンテナー
- 必須
- いいえ
S3Metadata- 説明
-
オブジェクトメタデータに基づくフィルタリングの
FilterRuleエンティティーの一覧。リスト内のフィルタールールはすべて、オブジェクトで定義されたメタデータと一致する必要があります。ただし、フィルターにリストされていない他のメタデータエントリーがある場合には、オブジェクトは一致するままになります。 - 型
- コンテナー
- 必須
- いいえ
S3Tags- 説明
-
オブジェクトタグに基づいてフィルタリングする
FilterRuleエンティティーの一覧。リスト内のフィルタールールはすべて、オブジェクトで定義されたタグと一致する必要があります。ただし、フィルターに他のタグがリストされていない場合、オブジェクトは引き続き一致します。 - 型
- コンテナー
- 必須
- いいえ
S3Key.FilterRule- 説明
-
NameエンティティーおよびValueエンティティーです。Name は、prefix、suffix、またはregexです。Valueは、キー接頭辞、キー接尾辞、またはキーに一致する正規表現を保持します。 - 型
- コンテナー
- 必須
- はい
S3Metadata.FilterRule- 説明
-
NameエンティティーおよびValueエンティティーです。Name は、メタデータ属性の名前です (例:x-amz-meta-xxx)。この値は、この属性で想定される値になります。 - 型
- コンテナー
- 必須
- はい
S3Tags.FilterRule- 説明
-
NameエンティティーおよびValueエンティティーです。Name はタグキーで、値はタグの値です。 - 型
- コンテナー
- 必須
- はい
HTTP レスポンス
400- ステータスコード
-
MalformedXML - 説明
- XML は適していません。
400- ステータスコード
-
InvalidArgument - 説明
- ID がないか、トピック ARN がないか無効であるか、イベントが無効です。
404- ステータスコード
-
NoSuchBucket - 説明
- バケットが存在しません。
404- ステータスコード
-
NoSuchKey - 説明
- トピックが存在しません。
3.3.2. S3 get bucket notifications リンクのコピーリンクがクリップボードにコピーされました!
特定の通知を取得するか、バケットに設定されたすべての通知を一覧表示します。
構文
Get /BUCKET?notification=NOTIFICATION_ID HTTP/1.1 Host: cname.domain.com Date: date Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
Get /BUCKET?notification=NOTIFICATION_ID HTTP/1.1
Host: cname.domain.com
Date: date
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
例
Get /testbucket?notification=testnotificationID HTTP/1.1 Host: cname.domain.com Date: date Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
Get /testbucket?notification=testnotificationID HTTP/1.1
Host: cname.domain.com
Date: date
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
レスポンスの例
notification サブリソースはバケット通知設定または空の NotificationConfiguration 要素を返します。呼び出し元はバケットの所有者である必要があります。
リクエストエンティティー
notification-id- 説明
- 通知の名前。ID が指定されていない場合は、すべての通知がリスト表示されます。
- 型
- String
NotificationConfiguration- 説明
-
TopicConfigurationエンティティーのリスト。 - 型
- コンテナー
- 必須
- はい
TopicConfiguration- 説明
-
イベントエンティティーの
Id、Topic、およびlist。 - 型
- コンテナー
- 必須
- はい
id- 説明
- 通知の名前。
- 型
- String
- 必須
- はい
Topic- 説明
トピック Amazon リソース名 (ARN)
注記トピックは事前に作成する必要があります。
- 型
- String
- 必須
- はい
Event- 説明
- 処理されたイベント。複数のイベントエンティティーが存在する可能性があります。
- 型
- String
- 必須
- はい
Filter- 説明
- 指定の設定のフィルター。
- 型
- コンテナー
- 必須
- いいえ
HTTP レスポンス
404- ステータスコード
-
NoSuchBucket - 説明
- バケットが存在しません。
404- ステータスコード
-
NoSuchKey - 説明
- 通知は、提供された場合に存在しません。
3.3.3. S3 delete bucket notifications リンクのコピーリンクがクリップボードにコピーされました!
バケットから特定の通知またはすべての通知を削除します。
通知の削除は、S3 通知 API の拡張機能です。バケットで定義された通知は、バケットの削除時に削除されます。不明な通知 (例: double delete) を削除しても、エラーとは見なされません。
特定の通知またはすべての通知を削除するには、DELETE を使用します。
構文
DELETE /BUCKET?notification=NOTIFICATION_ID HTTP/1.1
DELETE /BUCKET?notification=NOTIFICATION_ID HTTP/1.1
例
DELETE /testbucket?notification=testnotificationID HTTP/1.1
DELETE /testbucket?notification=testnotificationID HTTP/1.1
リクエストエンティティー
notification-id- 説明
- 通知の名前。通知 ID が指定されていない場合は、バケットのすべての通知が削除されます。
- 型
- String
HTTP レスポンス
404- ステータスコード
-
NoSuchBucket - 説明
- バケットが存在しません。
3.3.4. バケットのホスト名へのアクセス リンクのコピーリンクがクリップボードにコピーされました!
バケットにアクセスするモードは 2 つあります。最初のメソッドは推奨されるメソッドで、バケットを URI の最上位ディレクトリーとして識別します。
例
GET /mybucket HTTP/1.1 Host: cname.domain.com
GET /mybucket HTTP/1.1
Host: cname.domain.com
2 番目のメソッドは、仮想バケットのホスト名経由でバケットを識別します。
例
GET / HTTP/1.1 Host: mybucket.cname.domain.com
GET / HTTP/1.1
Host: mybucket.cname.domain.com
2 番目の方法では高価なドメイン認定と DNS ワイルドカードが必要なため、Red Hat は最初の方法を推奨します。
3.3.5. S3 list buckets リンクのコピーリンクがクリップボードにコピーされました!
GET / は、ユーザーがリクエストを行うユーザーが作成するバケットのリストを返します。GET / は、認証ユーザーが作成したバケットのみを返します。匿名のリクエストを行うことはできません。
構文
GET / HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET / HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
レスポンスエンティティー
バケット- 説明
- バケットのリスト用のコンテナー。
- 型
- コンテナー
Bucket- 説明
- バケット情報用のコンテナー
- 型
- コンテナー
名前- 説明
- バケット名。
- 型
- String
CreationDate- 説明
- バケットが作成された時点の UTC 時間。
- 型
- 日付
ListAllMyBucketsResult- 説明
- 結果のコンテナー。
- 型
- コンテナー
Owner- 説明
-
バケット所有者の
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
ID- 説明
- バケット所有者の ID。
- 型
- String
DisplayName- 説明
- バケットの所有者の表示名。
- 型
- String
3.3.6. S3 return a list of bucket objects リンクのコピーリンクがクリップボードにコピーされました!
バケットオブジェクトのリストを返します。
構文
GET /BUCKET?max-keys=25 HTTP/1.1 Host: cname.domain.com
GET /BUCKET?max-keys=25 HTTP/1.1
Host: cname.domain.com
パラメーター
prefix- 説明
- 指定された接頭辞が含まれるオブジェクトのみを返します。
- 型
- String
delimiter- 説明
- 接頭辞と他のオブジェクト名の間に挿入される区切り文字。
- 型
- String
marker- 説明
- 返されるオブジェクトリストの開始インデックス。
- 型
- String
max-keys- 説明
- 返すキーの最大数。デフォルトは 1000 です。
- 型
- Integer
HTTP レスポンス
200- ステータスコード
-
OK - 説明
- 取得するバケット
GET /BUCKET は、以下のフィールドが含まれるバケットのコンテナーを返します。
バケットレスポンスエンティティー
ListBucketResult- 説明
- オブジェクトリストのコンテナー。
- 型
- エンティティー
名前- 説明
- コンテンツが返されるバケットの名前。
- 型
- String
接頭辞- 説明
- オブジェクトキーの接頭辞。
- 型
- String
Marker- 説明
- 返されるオブジェクトリストの開始インデックス。
- 型
- String
MaxKeys- 説明
- 返されるキーの最大数。
- 型
- Integer
デリミタ- 説明
-
設定されている場合は、同じ接頭辞を持つオブジェクトが
CommonPrefixesリストに表示されます。 - 型
- String
IsTruncated- 説明
-
trueの場合、バケットの内容のサブセットのみが返されます。 - 型
- Boolean
CommonPrefixes- 説明
- 複数のオブジェクトに同じ接頭辞が含まれる場合は、このリストに表示されます。
- 型
- コンテナー
ListBucketResult にはオブジェクトが含まれ、各オブジェクトは Contents コンテナー内にあります。
オブジェクトレスポンスエンティティー
内容- 説明
- オブジェクトのコンテナー。
- 型
- オブジェクト
キー- 説明
- オブジェクトのキー。
- 型
- String
LastModified- 説明
- オブジェクトの最終変更日および時間。
- 型
- 日付
ETag- 説明
- オブジェクトの MD-5 ハッシュ。ETag はエンティティータグです。
- 型
- String
Size- 説明
- オブジェクトのサイズ。
- 型
- Integer
StorageClass- 説明
-
常に
STANDARDを返す必要があります。 - 型
- String
3.3.7. S3 create a new bucket リンクのコピーリンクがクリップボードにコピーされました!
新規バケットを作成します。バケットを作成するには、要求を認証するためにユーザー ID および有効な AWS アクセスキー ID が必要です。バケットを匿名ユーザーとして作成することはできません。
制約
通常、バケット名はドメイン名の制約に従う必要があります。
- バケット名は一意である必要があります。
- バケット名を IP アドレスとしてフォーマットすることはできません。
- バケット名の長さは 3〜63 文字です。
- バケット名には、大文字やアンダースコアを含めることはできません。
- バケット名は小文字または数字で始まる必要があります。
- バケット名にはダッシュ (-) を含めることができます。
- バケット名は、一連の 1 つ以上のラベルである必要があります。隣接するラベルは単一のピリオド (.) で区切られます。バケット名には、小文字、数字、およびハイフンを含めることができます。各ラベルは、小文字または数字で開始および終了する必要があります。
rgw_relaxed_s3_bucket_names が true に設定されている場合、上記の制約は緩和されます。バケット名は一意である必要があり、IP アドレスとしてフォーマットすることはできず、最大 255 文字の文字、数字、ピリオド、ダッシュ、およびアンダースコアを含めることができます。
構文
PUT /BUCKET HTTP/1.1 Host: cname.domain.com x-amz-acl: public-read-write Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
PUT /BUCKET HTTP/1.1
Host: cname.domain.com
x-amz-acl: public-read-write
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
パラメーター
x-amz-acl- 説明
- 固定 ACL。
- 有効な値
-
private、public-read、public-read-write、authenticated-read - 必須
- いいえ
HTTP レスポンス
バケット名が一意で、制約内で未使用であると、操作は成功します。同じ名前のバケットがすでに存在し、ユーザーがバケット所有者である場合は、操作が成功します。バケット名が使用中の場合は、操作が失敗します。
409- ステータスコード
-
BucketAlreadyExists - 説明
- バケットは、異なるユーザーの所有権に存在します。
3.3.8. S3 put bucket website リンクのコピーリンクがクリップボードにコピーされました!
put bucket website API は、website サブリソースで指定されている Web サイトの設定を設定します。バケットを Web サイトとして設定するには、website のサブリソースをバケットに追加できます。
put 操作には S3:PutBucketWebsite パーミッションが必要です。デフォルトでは、バケットの所有者のみがバケットに接続されている Web サイトを設定できます。
構文
PUT /BUCKET?website-configuration=HTTP/1.1
PUT /BUCKET?website-configuration=HTTP/1.1
例
PUT /testbucket?website-configuration=HTTP/1.1
PUT /testbucket?website-configuration=HTTP/1.1
3.3.9. S3 get bucket website リンクのコピーリンクがクリップボードにコピーされました!
get bucket website API は、website サブリソースで指定されている Web サイトの設定を取得します。
Get 操作を実行するには、S3:GetBucketWebsite パーミッションが必要です。デフォルトでは、バケットの所有者のみがバケット Web 設定を読み取ることができます。
構文
GET /BUCKET?website-configuration=HTTP/1.1
GET /BUCKET?website-configuration=HTTP/1.1
例
GET /testbucket?website-configuration=HTTP/1.1
GET /testbucket?website-configuration=HTTP/1.1
3.3.10. S3 delete bucket website リンクのコピーリンクがクリップボードにコピーされました!
delete bucket website API は、バケットの Web サイト設定を削除します。
構文
DELETE /BUCKET?website-configuration=HTTP/1.1
DELETE /BUCKET?website-configuration=HTTP/1.1
例
DELETE /testbucket?website-configuration=HTTP/1.1
DELETE /testbucket?website-configuration=HTTP/1.1
3.3.11. S3 put bucket replication リンクのコピーリンクがクリップボードにコピーされました!
put bucket replication API は、バケットのレプリケーションを設定するか、既存のバケットを置き換えます。
構文
PUT /BUCKET?replication HTTP/1.1
PUT /BUCKET?replication HTTP/1.1
例
PUT /testbucket?replication HTTP/1.1
PUT /testbucket?replication HTTP/1.1
3.3.12. S3 get bucket replication リンクのコピーリンクがクリップボードにコピーされました!
get bucket replication API は、バケットのレプリケーション設定を返します。
構文
GET /BUCKET?replication HTTP/1.1
GET /BUCKET?replication HTTP/1.1
例
GET /testbucket?replication HTTP/1.1
GET /testbucket?replication HTTP/1.1
3.3.13. S3 delete bucket replication リンクのコピーリンクがクリップボードにコピーされました!
delete bucket replication API は、バケットからレプリケーション設定を削除します。
構文
DELETE /BUCKET?replication HTTP/1.1
DELETE /BUCKET?replication HTTP/1.1
例
DELETE /testbucket?replication HTTP/1.1
DELETE /testbucket?replication HTTP/1.1
3.3.14. S3 delete a bucket リンクのコピーリンクがクリップボードにコピーされました!
バケットを削除します。バケットの削除が正常に行われた後にバケット名を再利用できます。
構文
DELETE /BUCKET HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
DELETE /BUCKET HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
HTTP レスポンス
204- ステータスコード
-
コンテンツなし - 説明
- バケットが削除されました。
3.3.15. S3 bucket lifecycle リンクのコピーリンクがクリップボードにコピーされました!
バケットのライフサイクル設定を使用してオブジェクトを管理し、そのオブジェクトが有効期間中効果的に保存されるようにすることができます。Ceph Object Gateway の S3 API は、AWS バケットライフサイクルアクションのサブセットをサポートします。
-
Expiration: これはバケット内のオブジェクトの有効期間を定義します。オブジェクトが存続する日数または有効期限がかかり、その時点で Ceph Object Gateway がオブジェクトを削除します。バケットがバージョン管理を有効にしない場合、Ceph Object Gateway はオブジェクトを永続的に削除します。バケットがバージョン管理を有効化する場合、Ceph Object Gateway は現行バージョンの削除マーカーを作成し、現行バージョンを削除します。 -
NoncurrentVersionExpiration: これはバケット内にある非現行オブジェクトバージョンのライフサイクルを定義します。この機能を使用するには、バケットのバージョン管理を有効にする必要があります。非現行オブジェクトが存続する日数が指定され、その期間が経過すると Ceph Object Gateway は非現行オブジェクトを削除します。 -
NewerNoncurrentVersions: 保持する非現行オブジェクトバージョンの数を指定します。保持する非現行バージョンを最大 100 個まで指定できます。指定した保持数が 100 を超える場合、追加の非現行バージョンが削除されます。 -
AbortIncompleteMultipartUpload: これは、非完全なマルチパートアップロードが中止されるまでの日数を定義します。 -
BlockPublicPolicy reject: パブリックアクセスをブロックするためのアクションです。指定された (アクセスポイントまたは基盤となるバケットの) ポリシーがパブリックアクセスを許可する場合、アクセスポイントを介して作成される PUT アクセスポイントポリシーと PUT バケットポリシーを呼び出します。Amazon S3 Block Public Access 機能は、Red Hat Ceph Storage 5.x/Ceph Pacific バージョンで利用できます。これは、Amazon S3 リソースへのパブリックアクセスを管理するために使用できるアクセスポイント、バケット、アカウントの設定を提供します。デフォルトでは、新しいバケット、アクセスポイント、およびオブジェクトはパブリックアクセスを許可しません。ただし、バケットポリシー、アクセスポイントポリシー、またはオブジェクト権限を変更して、パブリックアクセスを許可できます。S3 Block Public Access の設定は、これらのポリシーと権限をオーバーライドするため、リソースへのパブリックアクセスを制限できます。
ライフサイクル設定には、<Rule> 要素を使用した 1 つ以上のルールが含まれます。
例
ライフサイクルルールは、ライフサイクルルールに指定する <Filter> 要素に基づいてバケットの全オブジェクトまたはサブセットに適用できます。フィルターは複数の方法を指定できます。
- キーの接頭辞
- オブジェクトタグ
- キー接頭辞と 1 つ以上のオブジェクトタグの両方
キーの接頭辞
ライフサイクルルールは、キー名の接頭辞に基づいてオブジェクトのサブセットに適用できます。たとえば、<keypre/> を指定すると、keypre/ で始まるオブジェクトに適用されます。
異なるキー接頭辞を持つオブジェクトに、異なるライフサイクルルールを適用することもできます。
オブジェクトタグ
ライフサイクルルールは、<Key> 要素および <Value> 要素を使用して、特定のタグを持つオブジェクトにのみ適用できます。
接頭辞および 1 つ以上のタグの両方
ライフサイクルルールでは、キーの接頭辞と 1 つ以上のタグの両方に基づいてフィルターを指定できます。これらは <And> 要素でラップする必要があります。フィルターには 1 つの接頭辞と、ゼロまたは複数のタグのみを使用できます。
関連情報
- バケットライフサイクルの取得の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 GET bucket lifecycle セクションを参照してください。
- バケットライフサイクルの作成の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 create or replace a bucket lifecycle セクションを参照してください。
- バケットライフサイクルの削除の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 delete a bucket lifecycle セクションを参照してください。
3.3.16. S3 GET bucket lifecycle リンクのコピーリンクがクリップボードにコピーされました!
バケットのライフサイクルを取得するには、GET を使用して宛先バケットを指定します。
構文
GET /BUCKET?lifecycle HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?lifecycle HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
リクエストヘッダー
一般的なリクエストヘッダーの詳細は、付録 B の S3 の一般的なリクエストヘッダー を参照してください。
レスポンス
レスポンスには、バケットライフサイクルとその要素が含まれます。
3.3.17. S3 create or replace a bucket lifecycle リンクのコピーリンクがクリップボードにコピーされました!
バケットライフサイクルを作成または置き換えるには、PUT を使用して宛先バケットとライフサイクル設定を指定します。Ceph Object Gateway は、S3 ライフサイクル機能のサブセットのみをサポートします。
構文
リクエストヘッダー
content-md5- 説明
- メッセージの base64 でエンコードされた MD-5 ハッシュ
- 有効な値
- 文字列。デフォルトや制約はありません。
- 必須
- いいえ
関連情報
- Amazon S3 の一般的なリクエストヘッダーの詳細は、Red Hat Ceph Storage 開発者ガイド の付録 B の S3 の一般的なリクエストヘッダー セクションを参照してください。
- Amazon S3 バケットのライフサイクルの詳細は、Red Hat Ceph Storage 開発者ガイド の S3 バケットのライフサイクル セクションを参照してください。
3.3.18. S3 delete a bucket lifecycle リンクのコピーリンクがクリップボードにコピーされました!
バケットライフサイクルを削除するには、DELETE を使用し、宛先バケットを指定します。
構文
DELETE /BUCKET?lifecycle HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
DELETE /BUCKET?lifecycle HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
リクエストヘッダー
リクエストには特別な要素が含まれません。
レスポンス
レスポンスは、一般的なレスポンスのステータスを返します。
関連情報
- Amazon S3 の一般的なリクエストヘッダーの詳細は、Red Hat Ceph Storage 開発者ガイド の付録 B の S3 の一般的なリクエストヘッダー セクションを参照してください。
- Amazon S3 の一般的なレスポンスステータスコードの詳細は、Red Hat Ceph Storage 開発者ガイド の付録 C の S3 の一般的なレスポンスステータスコード セクションを参照してください。
3.3.19. S3 get bucket location リンクのコピーリンクがクリップボードにコピーされました!
バケットのゾーングループを取得します。これを呼び出すには、ユーザーはバケット所有者である必要があります。PUT 要求時に LocationConstraint を指定して、バケットをゾーングループに制限できます。
以下のように location サブリソースをバケットリソースに追加します。
構文
GET /BUCKET?location HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?location HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
レスポンスエンティティー
LocationConstraint- 説明
- バケットが存在するゾーングループ (デフォルトゾーングループ用の空の文字列)
- 型
- String
3.3.20. S3 get bucket versioning リンクのコピーリンクがクリップボードにコピーされました!
バケットのバージョン状態を取得します。これを呼び出すには、ユーザーはバケット所有者である必要があります。
以下のように、versioning サブリソースをバケットリソースに追加します。
構文
GET /BUCKET?versioning HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?versioning HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.21. S3 put bucket versioning リンクのコピーリンクがクリップボードにコピーされました!
このサブリソースは、既存のバケットのバージョン管理状態を設定します。バージョン管理状態を設定するには、バケット所有者である必要があります。バージョン管理状態がバケットに設定されていないと、バージョンは管理されていません。GET バージョン管理リクエストを実行しても、バージョン管理状態の値は返されません。
バケットによるバージョン管理の状態を設定します。
Enabled: バケットのオブジェクトのバージョン管理を有効にします。バケットに追加したすべてのオブジェクトは、一意のバージョン ID を受信します。Suspended: バケットのオブジェクトのバージョン管理を無効にします。バケットに追加したすべてのオブジェクトは、バージョン ID の Null を受け取ります。
構文
PUT /BUCKET?versioning HTTP/1.1
PUT /BUCKET?versioning HTTP/1.1
例
PUT /testbucket?versioning HTTP/1.1
PUT /testbucket?versioning HTTP/1.1
バケット要求のエンティティー
VersioningConfiguration- 説明
- 要求のコンテナー。
- 型
- コンテナー
状態- 説明
- バケットのバージョン状態を設定します。有効な値: Suspended/Enabled
- 型
- String
3.3.22. S3 get bucket access control lists リンクのコピーリンクがクリップボードにコピーされました!
バケットのアクセス制御リストを取得します。ユーザーはバケットの所有者である必要があります。または、バケットで READ_ACP パーミッションが付与されている必要があります。
以下のように、acl サブリソースをバケット要求に追加します。
構文
GET /BUCKET?acl HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?acl HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
レスポンスエンティティー
AccessControlPolicy- 説明
- 応答のコンテナー。
- 型
- コンテナー
AccessControlList- 説明
- ACL 情報用のコンテナー
- 型
- コンテナー
Owner- 説明
-
バケット所有者の
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
ID- 説明
- バケット所有者の ID。
- 型
- String
DisplayName- 説明
- バケットの所有者の表示名。
- 型
- String
Grant- 説明
-
GranteeおよびPermissionのコンテナー。 - 型
- コンテナー
Grantee- 説明
-
パーミッションを付与されるユーザーの
DisplayNameおよびIDのコンテナー。 - 型
- コンテナー
パーミッション- 説明
-
Granteeバケットに指定されるパーミッション。 - 型
- String
3.3.23. S3 put bucket Access Control Lists リンクのコピーリンクがクリップボードにコピーされました!
既存のバケットへのアクセス制御を設定します。ユーザーはバケットの所有者である必要があります。または、バケットの WRITE_ACP パーミッションが付与されている必要があります。
以下のように、acl サブリソースをバケット要求に追加します。
構文
PUT /BUCKET?acl HTTP/1.1
PUT /BUCKET?acl HTTP/1.1
リクエストエンティティー
S3 list multipart uploads
AccessControlList- 説明
- ACL 情報用のコンテナー
- 型
- コンテナー
Owner- 説明
-
バケット所有者の
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
ID- 説明
- バケット所有者の ID。
- 型
- String
DisplayName- 説明
- バケットの所有者の表示名。
- 型
- String
Grant- 説明
-
GranteeおよびPermissionのコンテナー。 - 型
- コンテナー
Grantee- 説明
-
パーミッションを付与されるユーザーの
DisplayNameおよびIDのコンテナー。 - 型
- コンテナー
パーミッション- 説明
-
Granteeバケットに指定されるパーミッション。 - 型
- String
3.3.24. S3 get bucket cors リンクのコピーリンクがクリップボードにコピーされました!
バケットに設定された CORS 設定情報を取得します。ユーザーはバケットの所有者である必要があります。または、バケットで READ_ACP パーミッションが付与されている必要があります。
以下に示すように、cors サブリソースをバケット要求に追加します。
構文
GET /BUCKET?cors HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?cors HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.25. S3 put bucket cors リンクのコピーリンクがクリップボードにコピーされました!
バケットの CORS 設定を設定します。ユーザーはバケットの所有者である必要があります。または、バケットで READ_ACP パーミッションが付与されている必要があります。
以下に示すように、cors サブリソースをバケット要求に追加します。
構文
PUT /BUCKET?cors HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
PUT /BUCKET?cors HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.26. S3 delete a bucket cors リンクのコピーリンクがクリップボードにコピーされました!
バケットに設定された CORS 設定情報を削除します。ユーザーはバケットの所有者である必要があります。または、バケットで READ_ACP パーミッションが付与されている必要があります。
以下に示すように、cors サブリソースをバケット要求に追加します。
構文
DELETE /BUCKET?cors HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
DELETE /BUCKET?cors HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.27. S3 list bucket object versions リンクのコピーリンクがクリップボードにコピーされました!
バケット内のすべてのバージョンのオブジェクトに関するメタデータのリストを返します。バケットへの READ アクセスが必要です。
以下のように versions サブリソースをバケット要求に追加します。
構文
GET /BUCKET?versions HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?versions HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?versions のパラメーターを指定できますが、いずれも不要です。
パラメーター
prefix- 説明
- 指定の接頭辞が含まれるキーが含まれる進行中のアップロードを返します。
- 型
- String
delimiter- 説明
- 接頭辞と他のオブジェクト名の間に挿入される区切り文字。
- 型
- String
key-marker- 説明
- アップロードリストの最初のマーカー。
- 型
- String
max-keys- 説明
- 進行中のアップロードの最大数。デフォルトは 1000 です。
- 型
- Integer
version-id-marker- 説明
- リストを開始するオブジェクトバージョンを指定します。
- 型
- String
レスポンスエンティティー
KeyMarker- 説明
-
key-marker要求パラメーターによって指定されるキーマーカー (存在する場合)。 - 型
- String
NextKeyMarker- 説明
-
IsTruncatedがtrueの場合に後続のリクエストで使用するキーマーカー。 - 型
- String
NextUploadIdMarker- 説明
-
IsTruncatedがtrueの場合に後続のリクエストで使用するアップロード ID マーカー。 - 型
- String
IsTruncated- 説明
-
trueの場合は、バケットのアップロードコンテンツのサブセットのみが返されます。 - 型
- Boolean
Size- 説明
- アップロードした部分のサイズ。
- 型
- Integer
DisplayName- 説明
- 所有者の表示名。
- 型
- String
ID- 説明
- 所有者の ID。
- 型
- String
Owner- 説明
-
オブジェクトを所有するユーザーの
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
StorageClass- 説明
-
作成されるオブジェクトを保存するために使用されるメソッド。
STANDARDまたはREDUCED_REDUNDANCY - 型
- String
バージョン- 説明
- バージョン情報のコンテナー
- 型
- コンテナー
versionId- 説明
- オブジェクトのバージョン ID。
- 型
- String
versionIdMarker- 説明
- 省略されたレスポンスのキーの最後のバージョン。
- 型
- String
3.3.28. S3 head bucket リンクのコピーリンクがクリップボードにコピーされました!
バケットで HEAD を呼び出して、存在する場合は、呼び出し元にアクセス権限があるかどうかを判断します。バケットが存在し、呼び出し元にパーミッションがある場合は 200 OK を返します。バケットが存在しない場合は 404 Not Found、バケットが存在しますが呼び出し元にはアクセスパーミッションがない場合は 403 Forbidden を返します。
構文
HEAD /BUCKET HTTP/1.1 Host: cname.domain.com Date: date Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
HEAD /BUCKET HTTP/1.1
Host: cname.domain.com
Date: date
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.29. S3 list multipart uploads リンクのコピーリンクがクリップボードにコピーされました!
GET /?uploads は、現在の進行中のマルチパートアップロードのリストを返します。つまり、アプリケーションは複数パートごとのアップロードを開始しますが、サービスがすべてのアップロードを完了しているわけではありません。
構文
GET /BUCKET?uploads HTTP/1.1
GET /BUCKET?uploads HTTP/1.1
GET /BUCKET?uploads のパラメーターを指定できますが、いずれも不要です。
パラメーター
prefix- 説明
- 指定の接頭辞が含まれるキーが含まれる進行中のアップロードを返します。
- 型
- String
delimiter- 説明
- 接頭辞と他のオブジェクト名の間に挿入される区切り文字。
- 型
- String
key-marker- 説明
- アップロードリストの最初のマーカー。
- 型
- String
max-keys- 説明
- 進行中のアップロードの最大数。デフォルトは 1000 です。
- 型
- Integer
max-uploads- 説明
- マルチパートアップロードの最大数。範囲は 1-1000 です。デフォルトは 1000 です。
- 型
- Integer
version-id-marker- 説明
-
key-markerが指定されていない場合は無視されます。IDまたはそれに続く辞書順序でリストされる最初のアップロードのIDを指定します。 - 型
- String
レスポンスエンティティー
ListMultipartUploadsResult- 説明
- 結果のコンテナー
- 型
- コンテナー
ListMultipartUploadsResult.Prefix- 説明
-
prefix要求パラメーターで指定される接頭辞 (存在する場合)。 - 型
- String
Bucket- 説明
- バケットのコンテンツを受け取るバケット。
- 型
- String
KeyMarker- 説明
-
key-marker要求パラメーターによって指定されるキーマーカー (存在する場合)。 - 型
- String
UploadIdMarker- 説明
-
upload-id-marker要求パラメーターによって指定されるマーカー (存在する場合)。 - 型
- String
NextKeyMarker- 説明
-
IsTruncatedがtrueの場合に後続のリクエストで使用するキーマーカー。 - 型
- String
NextUploadIdMarker- 説明
-
IsTruncatedがtrueの場合に後続のリクエストで使用するアップロード ID マーカー。 - 型
- String
MaxUploads- 説明
-
max-uploadsリクエストパラメーターで指定される最大アップロード数。 - 型
- Integer
デリミタ- 説明
-
設定されている場合は、同じ接頭辞を持つオブジェクトが
CommonPrefixesリストに表示されます。 - 型
- String
IsTruncated- 説明
-
trueの場合は、バケットのアップロードコンテンツのサブセットのみが返されます。 - 型
- Boolean
Upload- 説明
-
Key、UploadId、InitiatorOwner、StorageClass、およびInitiated要素のコンテナー。 - 型
- コンテナー
キー- 説明
- マルチパートアップロードが完了した後のオブジェクトのキー。
- 型
- String
UploadId- 説明
-
マルチパートアップロードを識別する
ID。 - 型
- String
イニシエーター- 説明
-
アップロードを開始したユーザーの
IDとDisplayNameが含まれます。 - 型
- コンテナー
DisplayName- 説明
- イニシエーターの表示名。
- 型
- String
ID- 説明
- イニシエーターの ID。
- 型
- String
Owner- 説明
-
アップロードしたオブジェクトを所有するユーザーの
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
StorageClass- 説明
-
作成されるオブジェクトを保存するために使用されるメソッド。
STANDARDまたはREDUCED_REDUNDANCY - 型
- String
Initiated- 説明
- ユーザーがアップロードを開始した日時。
- 型
- 日付
CommonPrefixes- 説明
- 複数のオブジェクトに同じ接頭辞が含まれる場合は、このリストに表示されます。
- 型
- コンテナー
CommonPrefixes.Prefix- 説明
-
prefixリクエストパラメーターで定義されている接頭辞の後にキーのサブ文字列。 - 型
- String
3.3.30. S3 bucket policies リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway は、バケットに適用される Amazon S3 ポリシー言語のサブセットをサポートします。
作成および削除
Ceph Object Gateway は、CLI ツール radosgw-admin を使用するのではなく、標準の S3 操作を使用して S3 バケットポリシーを管理します。
管理者は、s3cmd コマンドを使用してポリシーを設定または削除できます。
例
制限
Ceph Object Gateway がサポートするのは以下の S3 アクションだけです。
-
s3:AbortMultipartUpload -
s3:CreateBucket -
s3:DeleteBucketPolicy -
s3:DeleteBucket -
s3:DeleteBucketWebsite -
s3:DeleteBucketReplication -
s3:DeleteReplicationConfiguration -
s3:DeleteObject -
s3:DeleteObjectVersion -
s3:GetBucketAcl -
s3:GetBucketCORS -
s3:GetBucketLocation -
s3:GetBucketPolicy -
s3:GetBucketRequestPayment -
s3:GetBucketVersioning -
s3:GetBucketWebsite -
s3:GetBucketReplication -
s3:GetReplicationConfiguration -
s3:GetLifecycleConfiguration -
s3:GetObjectAcl -
s3:GetObject -
s3:GetObjectTorrent -
s3:GetObjectVersionAcl -
s3:GetObjectVersion -
s3:GetObjectVersionTorrent -
s3:ListAllMyBuckets -
s3:ListBucketMultiPartUploads -
s3:ListBucket -
s3:ListBucketVersions -
s3:ListMultipartUploadParts -
s3:PutBucketAcl -
s3:PutBucketCORS -
s3:PutBucketPolicy -
s3:PutBucketRequestPayment -
s3:PutBucketVersioning -
s3:PutBucketWebsite -
s3:PutBucketReplication -
s3:PutReplicationConfiguration -
s3:PutLifecycleConfiguration -
s3:PutObjectAcl -
s3:PutObject -
s3:PutObjectVersionAcl
Ceph Object Gateway は、ユーザー、グループ、またはロールへのポリシー設定をサポートしません。
Ceph Object Gateway は、Amazon の 12 桁のアカウント ID の代わりに RGW の tenant 識別子を使用します。Amazon Web Service (AWS) S3 と Ceph Object Gateway S3 との間でポリシーを使用する場合、Ceph Object Gateway は、ユーザーの作成時に Amazon アカウント ID をテナント ID として使用する必要があります。
AWS S3 では、すべてのテナントが単一の名前空間を共有します。対照的に、Ceph Object Gateway はすべてのテナントにバケットの独自の名前空間を提供します。現在、別のテナントに属するバケットにアクセスしようとしている Ceph Object Gateway クライアントは、S3 リクエストの tenant:bucket としてそれを処理する必要があります。
AWS では、バケットポリシーは別のアカウントへのアクセスを許可し、そのアカウントの所有者はユーザーパーミッションを持つ個々のユーザーにアクセス権限を付与できます。Ceph Object Gateway はユーザー、ロール、およびグループのパーミッションをサポートしていません。そのため、アカウントの所有者は個々のユーザーに直接アクセスを付与する必要があります。
アカウント全体のアクセスをバケットに付与すると、そのアカウントのすべてのユーザーにアクセス権限が付与されます。
バケットポリシーは文字列の補正を サポートしません。
Ceph Object Gateway では、以下の条件キーがサポートされます。
-
aws:CurrentTime -
aws:EpochTime -
aws:PrincipalType -
aws:Referer -
aws:SecureTransport -
aws:SourceIp -
aws:UserAgent -
aws:username
Ceph Object Gateway のみ は、ListBucket アクションの以下の条件キーをサポートします。
-
s3:prefix -
s3:delimiter -
s3:max-keys
Swift への影響
Ceph Object Gateway は、Swift API にバケットポリシーを設定する機能はありません。ただし、S3 API で設定されたバケットポリシーは、Swift と S3 の操作を管理します。
Ceph Object Gateway は、Swift の認証情報を、ポリシーで指定されたプリンシパルと照合します。
3.3.31. S3 get the request payment configuration on a bucket リンクのコピーリンクがクリップボードにコピーされました!
requestPayment サブリソースを使用してバケットの要求支払い設定を返します。ユーザーはバケットの所有者である必要があります。または、バケットで READ_ACP パーミッションが付与されている必要があります。
以下のように requestPayment サブリソースをバケット要求に追加します。
構文
GET /BUCKET?requestPayment HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
GET /BUCKET?requestPayment HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
3.3.32. S3 set the request payment configuration on a bucket リンクのコピーリンクがクリップボードにコピーされました!
requestPayment サブリソースを使用してバケットの要求支払い設定を設定します。デフォルトでは、バケットの所有者はバケットからのダウンロードに対して支払います。この設定パラメーターにより、バケットの所有者は、ダウンロードを要求するすべてのユーザーが要求に対して要求およびバケットからダウンロードに対して課金されることを指定できます。
以下のように requestPayment サブリソースをバケット要求に追加します。
構文
PUT /BUCKET?requestPayment HTTP/1.1 Host: cname.domain.com
PUT /BUCKET?requestPayment HTTP/1.1
Host: cname.domain.com
リクエストエンティティー
Payer- 説明
- ダウンロードおよびリクエストの費用の課金を指定します。
- 型
- Enum
RequestPaymentConfiguration- 説明
-
Payerのコンテナー。 - 型
- コンテナー
3.3.33. マルチテナントバケット操作 リンクのコピーリンクがクリップボードにコピーされました!
クライアントアプリケーションがバケットにアクセスする場合は、常に特定ユーザーの認証情報で動作します。Red Hat Ceph Storage クラスターでは、すべてのユーザーがテナントに属します。そのため、テナントが明示的に指定されていない場合は、すべてのバケット操作のコンテキストに暗黙的なテナントがあります。したがって、マルチテナンシーは、参照されるバケットと参照ユーザーが同じテナントに属する限り、以前のリリースと完全に後方互換性があります。
明示的なテナントの指定に使用される拡張機能は、使用されるプロトコルおよび認証システムによって異なります。
以下の例では、コロン文字はテナントとバケットを分離します。そのため、URL のサンプルは以下のようになります。
https://rgw.domain.com/tenant:bucket
https://rgw.domain.com/tenant:bucket
一方、単純な Python の例は、バケットメソッド自体でテナントとバケットを分離します。
例
ホスト名に、コロンや、バケット名では有効ではない他の区切り文字を含めることができないため、マルチテナンシーを使用して S3 形式のサブドメインを使用することはできません。期間を使用するとあいまいな構文が作成されます。そのため、bucket-in-URL-path 形式をマルチテナンシーと併用する必要があります。
関連情報
- 詳細は、Red Hat Ceph Storage Object Gateway ガイド の ユーザー管理 の マルチテナンシー セクションを参照してください。
3.3.34. S3 ブロックパブリックアクセス リンクのコピーリンクがクリップボードにコピーされました!
S3 ブロックパブリックアクセス機能を使用してバケットとユーザーを設定し、Red Hat Ceph Storage オブジェクトストレージ S3 リソースへのパブリックアクセスを管理できます。
この機能を使用すると、バケットポリシー、アクセスポイントポリシー、およびオブジェクトの権限をオーバーライドしてパブリックアクセスを許可できます。デフォルトでは、新しいバケット、アクセスポイント、およびオブジェクトはパブリックアクセスを許可しません。
Ceph Object Gateway の S3 API は、AWS パブリックアクセス設定のサブセットをサポートしています。
BlockPublicPolicy: ユーザーがアクセスポイントとバケットのポリシーを管理できるようにする設定を定義します。この設定では、ユーザーがバケットまたはバケットに含まれるオブジェクトをパブリックに共有することはできません。既存のアクセスポイントとバケットのポリシーは、この設定を有効にしても影響を受けません。このオプションをTRUEに設定すると、S3 は次のようになります。- PUT Bucket ポリシーへの呼び出しを拒否します。
- バケットの同じアカウントのすべてのアクセスポイントに対する PUT アクセスポイントポリシーへの呼び出しを拒否するには。
この設定を user レベルで適用すると、ユーザーは特定のバケットのパブリックアクセスブロック設定を変更できなくなります。
TRUE 設定は、指定されたポリシーでパブリックアクセスが許可されている場合にのみ機能します。
-
RestrictPublicBuckets: これは、パブリックポリシーを使用してバケットまたはアクセスポイントへのアクセスを制限する設定を定義します。この制限は、AWS サービスプリンシパルと、バケット所有者のアカウントおよびアクセスポイント所有者のアカウント内の承認されたユーザーにのみ適用されます。これにより、指定された場合を除き、アクセスポイントまたはバケットへのクロスアカウントアクセスがブロックされますが、アカウント内のユーザーは引き続きアクセスポイントまたはバケットを管理できます。この設定を有効にしても、既存のアクセスポイントまたはバケットポリシーには影響しません。これは、Amazon S3 が、特定のアカウントへの非公開委任を含む、パブリックアクセスポイントまたはバケットポリシーに由来するパブリックアクセスおよびクロスアカウントアクセスをブロックすることのみを定義します。
アクセス制御リスト (ACL) は現在、Red Hat Ceph Storage ではサポートされていません。
特に定義されていない限り、バケットポリシーはパブリックであるとみなされます。パブリックアクセスをブロックするには、バケットポリシーで次の 1 つ以上の固定値へのアクセスのみを許可する必要があります。
固定値には、ワイルドカード (*) または AWS Identity and Access Management ポリシー変数は含まれません。
- AWS プリンシパル、ユーザー、ロール、またはサービスプリンシパル
-
aws:SourceIpを使用したクラスレスドメイン間ルーティング (CIDR) のセット -
aws:SourceArn -
aws:SourceVpc -
aws:SourceVpce -
aws:SourceOwner -
aws:SourceAccount -
s3:x-amz-server-side-encryption-aws-kms-key-id -
aws:userid、パターンAROLEID:*の外 s3:DataAccessPointArn注記バケットポリシーで使用する場合、アカウント ID が固定されている限り、ポリシーを公開せずに、この値にアクセスポイント名のワイルドカードを含めることができます。
-
s3:DataAccessPointPointAccount
次のポリシー例はパブリックとみなされます。
例
ポリシーを非公開にするには、固定値を持つ条件キーのいずれかを含めます。
例
関連情報
- PublicAccessBlock の取得の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 GET `PublicAccessBlock` セクションを参照してください。
- PublicAccessBlock の作成または変更の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 PUT `PublicAccessBlock` セクションを参照してください。
- PublicAccessBlock の削除の詳細は、Red Hat Ceph Storage 開発者ガイド の S3 Delete `PublicAccessBlock` セクションを参照してください。
- バケットポリシーの詳細は、Red Hat Ceph Storage 開発者ガイド の S3 バケットポリシー セクションを参照してください。
- Amazon Simple Storage Service (S3) ドキュメントの Amazon S3 ストレージへのパブリックアクセスのブロック セクションを参照してください。
3.3.35. S3 GET PublicAccessBlock リンクのコピーリンクがクリップボードにコピーされました!
S3 ブロックパブリックアクセス機能を設定するには、GET を使用して宛先 AWS アカウントを指定します。
構文
GET /v20180820/configuration/publicAccessBlock HTTP/1.1 Host: cname.domain.com x-amz-account-id: _ACCOUNTID_
GET /v20180820/configuration/publicAccessBlock HTTP/1.1
Host: cname.domain.com
x-amz-account-id: _ACCOUNTID_
リクエストヘッダー
一般的なリクエストヘッダーの詳細は、付録 B の S3 の一般的なリクエストヘッダー を参照してください。
レスポンス
応答は HTTP 200 応答であり、XML 形式で返されます。
3.3.36. S3 PUT PublicAccessBlock リンクのコピーリンクがクリップボードにコピーされました!
これを使用して、S3 バケットの PublicAccessBlock 設定を作成または変更します。
この操作を使用するには、s3:PutBucketPublicAccessBlock 権限が必要です。
PublicAccessBlock 設定がバケットとアカウント間で異なる場合、Amazon S3 はバケットレベルとアカウントレベルの設定の最も制限的な組み合わせを使用します。
構文
リクエストヘッダー
一般的なリクエストヘッダーの詳細は、付録 B の S3 の一般的なリクエストヘッダー を参照してください。
レスポンス
応答は HTTP 200 応答であり、空の HTTP 本文が返されます。
3.3.37. S3 delete PublicAccessBlock リンクのコピーリンクがクリップボードにコピーされました!
これを使用して、S3 バケットの PublicAccessBlock 設定を削除します。
構文
DELETE /v20180820/configuration/publicAccessBlock HTTP/1.1 Host: s3-control.amazonaws.com x-amz-account-id: AccountId
DELETE /v20180820/configuration/publicAccessBlock HTTP/1.1
Host: s3-control.amazonaws.com
x-amz-account-id: AccountId
リクエストヘッダー
一般的なリクエストヘッダーの詳細は、付録 B の S3 の一般的なリクエストヘッダー を参照してください。
レスポンス
応答は HTTP 200 応答であり、空の HTTP 本文が返されます。
3.4. S3 オブジェクト操作 リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Ceph Object Gateway 経由で Amazon S3 アプリケーションプログラミングインターフェイス (API) を使用してオブジェクト操作を行うことができます。
以下の表は、関数のサポートステータスとともに、オブジェクトの Amazon S3 の機能操作を示しています。
| 機能 | 状態 |
|---|---|
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| サポート対象 | |
| マルチテナンシー | サポート対象 |
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
3.4.1. S3 get an object from a bucket リンクのコピーリンクがクリップボードにコピーされました!
バケットからオブジェクトを取得します。
構文
GET /BUCKET/OBJECT HTTP/1.1
GET /BUCKET/OBJECT HTTP/1.1
versionId サブリソースを追加して、オブジェクトの特定のバージョンを取得します。
構文
GET /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
GET /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
リクエストヘッダー
partNumber- 説明
-
読み取られるオブジェクトのパーツ番号。これにより、指定した部分に対する範囲指定の
GETリクエストが有効になります。このリクエストは、オブジェクトの一部だけをダウンロードする場合に便利です。 - 有効な値
- 1 から 10,000 までの正の整数。
- 必須
- いいえ
range- 説明
取得するオブジェクトの範囲。
注記各 GET リクエストで複数のデータ範囲を指定することはサポートされていません。
- 有効な値
- 範囲: bytes=beginbyte-endbyte
- 必須
- いいえ
if-modified-since- 説明
- タイムスタンプ以降に変更した場合にのみ取得します。
- 有効な値
- Timestamp
- 必須
- いいえ
if-unmodified-since- 説明
- タイムスタンプ以降変更されていない場合にのみ取得します。
- 有効な値
- Timestamp
- 必須
- いいえ
if-match- 説明
- オブジェクトの ETag が ETag と一致する場合にのみ取得します。
- 有効な値
- エンティティータグ
- 必須
- いいえ
if-none-match- 説明
- オブジェクトの ETag が ETag と一致しない場合にのみ取得します。
- 有効な値
- エンティティータグ
- 必須
- いいえ
リクエストヘッダーを含む構文
レスポンスヘッダー
Content-Range- 説明
- データ範囲 (範囲ヘッダーフィールドがリクエストに指定された場合のみを返します)。
x-amz-version-id- 説明
- バージョン ID または Null を返します。
3.4.2. S3 get information on an object リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトに関する情報を返します。この要求は Get Object 要求と同じヘッダー情報を返しますが、オブジェクトデータペイロードではなくメタデータのみが含まれます。
オブジェクトの現行バージョンを取得します。
構文
HEAD /BUCKET/OBJECT HTTP/1.1
HEAD /BUCKET/OBJECT HTTP/1.1
versionId サブリソースを追加して、特定バージョンの情報を取得します。
構文
HEAD /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
HEAD /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
リクエストヘッダー
range- 説明
- 取得するオブジェクトの範囲。
- 有効な値
- 範囲: bytes=beginbyte-endbyte
- 必須
- いいえ
if-modified-since- 説明
- タイムスタンプ以降に変更した場合にのみ取得します。
- 有効な値
- Timestamp
- 必須
- いいえ
if-match- 説明
- オブジェクトの ETag が ETag と一致する場合にのみ取得します。
- 有効な値
- エンティティータグ
- 必須
- いいえ
if-none-match- 説明
- オブジェクトの ETag が ETag と一致する場合にのみ取得します。
- 有効な値
- エンティティータグ
- 必須
- いいえ
レスポンスヘッダー
x-amz-version-id- 説明
- バージョン ID または Null を返します。
3.4.3. S3 put object lock リンクのコピーリンクがクリップボードにコピーされました!
put object lock API は、選択したバケットにロック設定を配置します。オブジェクトロックを使用すると、Write-Once-Read-Many (WORM) モデルを使用してオブジェクトを格納できます。オブジェクトロックは、オブジェクトが一定期間または無期限に削除または上書きされないようにします。Object Lock 設定に指定されるルールは、デフォルトで選択されるバケットにあるすべての新規オブジェクトに適用されます。
バケットを作成するときにオブジェクトロックを有効にします。有効にしないと、操作が失敗します。
構文
PUT /BUCKET?object-lock HTTP/1.1
PUT /BUCKET?object-lock HTTP/1.1
例
PUT /testbucket?object-lock HTTP/1.1
PUT /testbucket?object-lock HTTP/1.1
リクエストエンティティー
ObjectLockConfiguration- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
ObjectLockEnabled- 説明
- このバケットにオブジェクトロック設定が有効になっているかどうかを示します。
- 型
- String
- 必須
- はい
ルール- 説明
- 指定されたバケットの位置にあるオブジェクトロックルール。
- 型
- コンテナー
- 必須
- いいえ
DefaultRetention- 説明
- 指定されたバケットに設定される新規オブジェクトに適用されるデフォルトの保持期間。
- 型
- コンテナー
- 必須
- いいえ
方式- 説明
- デフォルトのオブジェクトのロック保持モード。有効な値は GOVERNANCE/COMPLIANCE です。
- 型
- コンテナー
- 必須
- はい
Days- 説明
- デフォルトの保持期間に指定される日数。
- 型
- Integer
- 必須
- いいえ
Years- 説明
- デフォルトの保持期間に指定されるの年数。
- 型
- Integer
- 必須
- いいえ
HTTP レスポンス
400- ステータスコード
-
MalformedXML - 説明
- XML は適していません。
409- ステータスコード
-
InvalidBucketState - 説明
- バケットオブジェクトのロックが有効になっていません。
3.4.4. S3 get object lock リンクのコピーリンクがクリップボードにコピーされました!
get object lock API は、バケットのロック設定を取得します。
構文
GET /BUCKET?object-lock HTTP/1.1
GET /BUCKET?object-lock HTTP/1.1
例
GET /testbucket?object-lock HTTP/1.1
GET /testbucket?object-lock HTTP/1.1
レスポンスエンティティー
ObjectLockConfiguration- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
ObjectLockEnabled- 説明
- このバケットにオブジェクトロック設定が有効になっているかどうかを示します。
- 型
- String
- 必須
- はい
ルール- 説明
- 指定されたバケットの位置に、オブジェクトロックルールがあります。
- 型
- コンテナー
- 必須
- いいえ
DefaultRetention- 説明
- 指定されたバケットに設定される新規オブジェクトに適用されるデフォルトの保持期間。
- 型
- コンテナー
- 必須
- いいえ
方式- 説明
- デフォルトのオブジェクトのロック保持モード。有効な値は GOVERNANCE/COMPLIANCE です。
- 型
- コンテナー
- 必須
- はい
Days- 説明
- デフォルトの保持期間に指定される日数。
- 型
- Integer
- 必須
- いいえ
Years- 説明
- デフォルトの保持期間に指定されるの年数。
- 型
- Integer
- 必須
- いいえ
3.4.5. S3 put object legal hold リンクのコピーリンクがクリップボードにコピーされました!
put object legal hold API は、選択したオブジェクトに有効な保持設定を適用します。法的な保持機能で、オブジェクトバージョンを上書きしたり、削除したりすることはできません。法的保持には関連付けられた保持期間がなく、明示的に削除されるまでそのまま維持されます。
構文
PUT /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
PUT /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
例
PUT /testbucket/testobject?legal-hold&versionId= HTTP/1.1
PUT /testbucket/testobject?legal-hold&versionId= HTTP/1.1
versionId サブリソースは、オブジェクトの特定のバージョンを取得します。
リクエストエンティティー
LegalHold- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
状態- 説明
- 指定されたオブジェクトに正当な保留があるかどうかを示します。有効な値は ON/OFF です。
- 型
- String
- 必須
- はい
3.4.6. S3 get object legal hold リンクのコピーリンクがクリップボードにコピーされました!
get object legal hold API は、オブジェクトの現在の法的保持ステータスを取得します。
構文
GET /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
GET /BUCKET/OBJECT?legal-hold&versionId= HTTP/1.1
例
GET /testbucket/testobject?legal-hold&versionId= HTTP/1.1
GET /testbucket/testobject?legal-hold&versionId= HTTP/1.1
versionId サブリソースは、オブジェクトの特定のバージョンを取得します。
レスポンスエンティティー
LegalHold- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
状態- 説明
- 指定されたオブジェクトに正当な保留があるかどうかを示します。有効な値は ON/OFF です。
- 型
- String
- 必須
- はい
3.4.7. S3 put object retention リンクのコピーリンクがクリップボードにコピーされました!
put object retention API は、オブジェクトの保持設定をオブジェクトに配置します。保持期間は、オブジェクトのバージョンを一定時間保護します。GOVERNANCE と COMPLIANCE の 2 つのモードがあります。これら 2 つの保持モードは、オブジェクトに対して異なる保護レベルを適用します。
この期間中、オブジェクトは Write-Once-Read-Many 保護 (WORM 保護) され、上書きも削除もできません。
構文
PUT /BUCKET/OBJECT?retention&versionId= HTTP/1.1
PUT /BUCKET/OBJECT?retention&versionId= HTTP/1.1
例
PUT /testbucket/testobject?retention&versionId= HTTP/1.1
PUT /testbucket/testobject?retention&versionId= HTTP/1.1
versionId サブリソースは、オブジェクトの特定のバージョンを取得します。
リクエストエンティティー
Retention- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
方式- 説明
- 指定されたオブジェクトの保持モード。有効な値は GOVERNANCE、COMPLIANCE です。
- 型
- String
- 必須
- はい
RetainUntilDate- 説明
- 保持日。
- 形式
- 2020-01-05T00:00:00.000Z
- 型
- Timestamp
- 必須
- はい
3.4.8. S3 get object retention リンクのコピーリンクがクリップボードにコピーされました!
get object retention API は、オブジェクト上でオブジェクトの保持設定を取得します。
構文
GET /BUCKET/OBJECT?retention&versionId= HTTP/1.1
GET /BUCKET/OBJECT?retention&versionId= HTTP/1.1
例
GET /testbucket/testobject?retention&versionId= HTTP/1.1
GET /testbucket/testobject?retention&versionId= HTTP/1.1
versionId サブリソースは、オブジェクトの特定のバージョンを取得します。
レスポンスエンティティー
Retention- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
方式- 説明
- 指定されたオブジェクトの保持モード。有効な値は GOVERNANCE/COMPLIANCE です。
- 型
- String
- 必須
- はい
RetainUntilDate- 説明
- 保持日。形式: 2020-01-05T00:00:00.000Z
- 型
- Timestamp
- 必須
- はい
3.4.9. S3 put object tagging リンクのコピーリンクがクリップボードにコピーされました!
put object tagging API は、タグをオブジェクトに関連付けます。タグはキーと値のペアです。他のバージョンのタグを配置するには、versionId クエリーパラメーターを使用します。s3:PutObjectTagging アクションを実行するパーミッションが必要です。デフォルトでは、バケットの所有者はこのパーミッションを持ち、このパーミッションを他のユーザーに付与できます。
構文
PUT /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
PUT /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
例
PUT /testbucket/testobject?tagging&versionId= HTTP/1.1
PUT /testbucket/testobject?tagging&versionId= HTTP/1.1
リクエストエンティティー
タグ付け- 説明
- 要求のコンテナー。
- 型
- コンテナー
- 必須
- はい
TagSet- 説明
- タグのセットのコレクションです。
- 型
- String
- 必須
- はい
3.4.10. S3 get object tagging リンクのコピーリンクがクリップボードにコピーされました!
get object tagging API は、オブジェクトのタグを返します。デフォルトでは、GET 操作はオブジェクトの現行バージョンについての情報を返します。
バージョン付けされたバケットの場合は、バケットに複数のバージョンのオブジェクトを使用できます。他のバージョンのタグを取得するには、要求に versionId クエリーパラメーターを追加します。
構文
GET /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
GET /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
例
GET /testbucket/testobject?tagging&versionId= HTTP/1.1
GET /testbucket/testobject?tagging&versionId= HTTP/1.1
3.4.11. S3 delete object tagging リンクのコピーリンクがクリップボードにコピーされました!
delete object tagging API は、指定されたオブジェクトから設定されたタグ全体を削除します。この操作を使用するには、s3:DeleteObjectTagging アクションを実行するパーミッションが必要です。
特定のオブジェクトバージョンのタグを削除するには、リクエストに versionId クエリーパラメーターを追加します。
構文
DELETE /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
DELETE /BUCKET/OBJECT?tagging&versionId= HTTP/1.1
例
DELETE /testbucket/testobject?tagging&versionId= HTTP/1.1
DELETE /testbucket/testobject?tagging&versionId= HTTP/1.1
3.4.12. S3 add an object to a bucket リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトをバケットに追加します。この操作を実行するには、バケットに書き込みパーミッションが必要です。
構文
PUT /BUCKET/OBJECT HTTP/1.1
PUT /BUCKET/OBJECT HTTP/1.1
リクエストヘッダー
content-md5- 説明
- メッセージの base64 でエンコードされた MD-5 ハッシュ
- 有効な値
- 文字列。デフォルトや制約はありません。
- 必須
- いいえ
content-type- 説明
- 標準の MIME タイプ。
- 有効な値
-
MIME タイプ。デフォルト:
binary/octet-stream - 必須
- いいえ
x-amz-meta-<…>*- 説明
- ユーザーのメタデータ。オブジェクトとともに保存されます。
- 有効な値
- 8kb までの文字列。デフォルトはありません。
- 必須
- いいえ
x-amz-acl- 説明
- 固定 ACL。
- 有効な値
-
private、public-read、public-read-write、authenticated-read - 必須
- いいえ
レスポンスヘッダー
x-amz-version-id- 説明
- バージョン ID または Null を返します。
3.4.13. S3 delete an object リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトを削除します。含まれるバケットに WRITE パーミッションを設定する必要があります。
オブジェクトを削除します。オブジェクトのバージョン管理が有効なの場合、マーカーが作成されます。
構文
DELETE /BUCKET/OBJECT HTTP/1.1
DELETE /BUCKET/OBJECT HTTP/1.1
バージョン管理が有効な場合にオブジェクトを削除するには、versionId サブリソースおよび削除するオブジェクトのバージョンを指定する必要があります。
DELETE /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
DELETE /BUCKET/OBJECT?versionId=VERSION_ID HTTP/1.1
3.4.14. S3 delete multiple objects リンクのコピーリンクがクリップボードにコピーされました!
この API 呼び出しは、バケットから複数のオブジェクトを削除します。
構文
POST /BUCKET/OBJECT?delete HTTP/1.1
POST /BUCKET/OBJECT?delete HTTP/1.1
3.4.15. S3 get an object's Access Control List (ACL) リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトの現行バージョンの ACL を返します。
構文
GET /BUCKET/OBJECT?acl HTTP/1.1
GET /BUCKET/OBJECT?acl HTTP/1.1
versionId サブリソースを追加して、特定バージョンの ACL を取得します。
構文
GET /BUCKET/OBJECT?versionId=VERSION_ID&acl HTTP/1.1
GET /BUCKET/OBJECT?versionId=VERSION_ID&acl HTTP/1.1
レスポンスヘッダー
x-amz-version-id- 説明
- バージョン ID または Null を返します。
レスポンスエンティティー
AccessControlPolicy- 説明
- 応答のコンテナー。
- 型
- コンテナー
AccessControlList- 説明
- ACL 情報用のコンテナー
- 型
- コンテナー
Owner- 説明
-
バケット所有者の
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
ID- 説明
- バケット所有者の ID。
- 型
- String
DisplayName- 説明
- バケットの所有者の表示名。
- 型
- String
Grant- 説明
-
GranteeおよびPermissionのコンテナー。 - 型
- コンテナー
Grantee- 説明
-
パーミッションを付与されるユーザーの
DisplayNameおよびIDのコンテナー。 - 型
- コンテナー
パーミッション- 説明
-
Granteeバケットに指定されるパーミッション。 - 型
- String
3.4.16. S3 set an object's Access Control List (ACL) リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトの現行バージョンのオブジェクト ACL を設定します。
構文
PUT /BUCKET/OBJECT?acl
PUT /BUCKET/OBJECT?acl
リクエストエンティティー
AccessControlPolicy- 説明
- 応答のコンテナー。
- 型
- コンテナー
AccessControlList- 説明
- ACL 情報用のコンテナー
- 型
- コンテナー
Owner- 説明
-
バケット所有者の
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
ID- 説明
- バケット所有者の ID。
- 型
- String
DisplayName- 説明
- バケットの所有者の表示名。
- 型
- String
Grant- 説明
-
GranteeおよびPermissionのコンテナー。 - 型
- コンテナー
Grantee- 説明
-
パーミッションを付与されるユーザーの
DisplayNameおよびIDのコンテナー。 - 型
- コンテナー
パーミッション- 説明
-
Granteeバケットに指定されるパーミッション。 - 型
- String
3.4.17. S3 copy an object リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトをコピーするには、PUT を使用して宛先バケットとオブジェクト名を指定します。
構文
PUT /DEST_BUCKET/DEST_OBJECT HTTP/1.1 x-amz-copy-source: SOURCE_BUCKET/SOURCE_OBJECT
PUT /DEST_BUCKET/DEST_OBJECT HTTP/1.1
x-amz-copy-source: SOURCE_BUCKET/SOURCE_OBJECT
リクエストヘッダー
x-amz-copy-source- 説明
- ソースバケット名 + オブジェクト名。
- 有効な値
-
BUCKET/OBJECT - 必須
- はい
x-amz-acl- 説明
- 固定 ACL。
- 有効な値
-
private、public-read、public-read-write、authenticated-read - 必須
- いいえ
x-amz-copy-if-modified-since- 説明
- タイムスタンプ以降に変更された場合のみコピーします。
- 有効な値
- Timestamp
- 必須
- いいえ
x-amz-copy-if-unmodified-since- 説明
- タイムスタンプ以降変更されていない場合にのみコピーします。
- 有効な値
- Timestamp
- 必須
- いいえ
x-amz-copy-if-match- 説明
- オブジェクトの ETag が ETag と一致する場合に限りコピーします。
- 有効な値
- エンティティータグ
- 必須
- いいえ
x-amz-copy-if-none-match- 説明
- オブジェクトの ETag が ETag と一致する場合に限りコピーします。
- 有効な値
- エンティティータグ
- 必須
- いいえ
レスポンスエンティティー
CopyObjectResult- 説明
- レスポンス要素のコンテナー。
- 型
- コンテナー
LastModified- 説明
- ソースオブジェクトを最後に変更した日付。
- 型
- 日付
Etag- 説明
- 新規オブジェクトの ETag。
- 型
- String
3.4.18. S3 add an object to a bucket using HTML forms リンクのコピーリンクがクリップボードにコピーされました!
HTML フォームを使用してオブジェクトをバケットに追加します。この操作を実行するには、バケットに書き込みパーミッションが必要です。
構文
POST /BUCKET/OBJECT HTTP/1.1
POST /BUCKET/OBJECT HTTP/1.1
3.4.19. S3 determine options for a request リンクのコピーリンクがクリップボードにコピーされました!
特定の送信元、HTTP メソッド、およびヘッダーを使用して実際のリクエストを送信できるかどうかを判断するための事前要求です。
構文
OPTIONS /OBJECT HTTP/1.1
OPTIONS /OBJECT HTTP/1.1
3.4.20. S3 initiate a multipart upload リンクのコピーリンクがクリップボードにコピーされました!
複数パートからなるアップロードプロセスを開始します。追加部分の追加、パーツのリスト表示、および複数パートアップロードの完了または破棄時に指定できる UploadId を返します。
構文
POST /BUCKET/OBJECT?uploads
POST /BUCKET/OBJECT?uploads
リクエストヘッダー
content-md5- 説明
- メッセージの base64 でエンコードされた MD-5 ハッシュ
- 有効な値
- 文字列。デフォルトや制約はありません。
- 必須
- いいえ
content-type- 説明
- 標準の MIME タイプ。
- 有効な値
-
MIME タイプ。デフォルト:
binary/octet-stream - 必須
- いいえ
x-amz-meta-<…>- 説明
- ユーザーのメタデータ。オブジェクトとともに保存されます。
- 有効な値
- 8kb までの文字列。デフォルトはありません。
- 必須
- いいえ
x-amz-acl- 説明
- 固定 ACL。
- 有効な値
-
private、public-read、public-read-write、authenticated-read - 必須
- いいえ
レスポンスエンティティー
InitiatedMultipartUploadsResult- 説明
- 結果のコンテナー
- 型
- コンテナー
Bucket- 説明
- オブジェクトの内容を受け取るバケット。
- 型
- String
キー- 説明
-
keyリクエストパラメーターで指定されるキー (存在する場合)。 - 型
- String
UploadId- 説明
-
upload-id要求パラメーターで指定される ID で、マルチパートアップロードを特定します (存在する場合)。 - 型
- String
3.4.21. S3 add a part to a multipart upload リンクのコピーリンクがクリップボードにコピーされました!
マルチパートアップロードに部分を追加します。
複数パートのアップロードに部分を追加するために uploadId サブリソースとアップロード ID を指定します。
構文
PUT /BUCKET/OBJECT?partNumber=&uploadId=UPLOAD_ID HTTP/1.1
PUT /BUCKET/OBJECT?partNumber=&uploadId=UPLOAD_ID HTTP/1.1
以下の HTTP レスポンスが返されます。
HTTP レスポンス
404- ステータスコード
-
NoSuchUpload - 説明
- 指定した upload-id がこのオブジェクトで開始されたアップロードと一致しません。
3.4.22. S3 list the parts of a multipart upload リンクのコピーリンクがクリップボードにコピーされました!
マルチパートアップロードの一部をリスト表示するために uploadId サブリソースとアップロード ID を指定します。
構文
GET /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
GET /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
レスポンスエンティティー
InitiatedMultipartUploadsResult- 説明
- 結果のコンテナー
- 型
- コンテナー
Bucket- 説明
- オブジェクトの内容を受け取るバケット。
- 型
- String
キー- 説明
-
keyリクエストパラメーターで指定されるキー (存在する場合)。 - 型
- String
UploadId- 説明
-
upload-id要求パラメーターで指定される ID で、マルチパートアップロードを特定します (存在する場合)。 - 型
- String
イニシエーター- 説明
-
アップロードを開始したユーザーの
IDとDisplayNameが含まれます。 - 型
- コンテナー
ID- 説明
- イニシエーターの ID。
- 型
- String
DisplayName- 説明
- イニシエーターの表示名。
- 型
- String
Owner- 説明
-
アップロードしたオブジェクトを所有するユーザーの
IDおよびDisplayNameのコンテナー。 - 型
- コンテナー
StorageClass- 説明
-
作成されるオブジェクトを保存するために使用されるメソッド。
STANDARDまたはREDUCED_REDUNDANCY - 型
- String
PartNumberMarker- 説明
-
IsTruncatedがtrueの場合に後続のリクエストで使用する部分マーカー。リストの先頭に指定します。 - 型
- String
NextPartNumberMarker- 説明
-
IsTruncatedがtrueの場合は、後続のリクエストで使用する次の部分マーカー。リストの末尾。 - 型
- String
IsTruncated- 説明
-
trueの場合は、オブジェクトのアップロードコンテンツのサブセットのみが返されます。 - 型
- Boolean
部分- 説明
-
Key、Part、InitiatorOwner、StorageClass、およびInitiated要素のコンテナー。 - 型
- コンテナー
PartNumber- 説明
-
Key、Part、InitiatorOwner、StorageClass、およびInitiated要素のコンテナー。 - 型
- Integer
ETag- 説明
- コンポーネントのエンティティータグです。
- 型
- String
Size- 説明
- アップロードした部分のサイズ。
- 型
- Integer
3.4.23. S3 assemble the uploaded parts リンクのコピーリンクがクリップボードにコピーされました!
アップロードした部分を組み立て、新規オブジェクトを作成します。これにより、複数パートのアップロードが実行されます。
複数パートからなるアップロードを完了するには、uploadId サブリソースとアップロード ID を指定します。
構文
POST /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
POST /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
リクエストエンティティー
CompleteMultipartUpload- 説明
- 1 つ以上の部分で構成されるコンテナー。
- 型
- コンテナー
- 必須
- はい
部分- 説明
-
PartNumberおよびETagのコンテナー。 - 型
- コンテナー
- 必須
- はい
PartNumber- 説明
- 部分の識別子。
- 型
- Integer
- 必須
- はい
ETag- 説明
- コンポーネントのエンティティータグです。
- 型
- String
- 必須
- はい
レスポンスエンティティー
CompleteMultipartUploadResult- 説明
- 応答のコンテナー。
- 型
- コンテナー
場所- 説明
- 新規オブジェクトのリソース識別子 (パス)。
- 型
- URI
bucket- 説明
- 新規オブジェクトが含まれるバケットの名前。
- 型
- String
キー- 説明
- オブジェクトのキー。
- 型
- String
ETag- 説明
- 新規オブジェクトのエンティティータグ。
- 型
- String
3.4.24. S3 copy a multipart upload リンクのコピーリンクがクリップボードにコピーされました!
既存のオブジェクトからデータをデータソースとしてコピーして、パーツをアップロードします。
複数パートからなるアップロードコピーを実行するには、uploadId サブリソースとアップロード ID を指定します。
構文
PUT /BUCKET/OBJECT?partNumber=PartNumber&uploadId=UPLOAD_ID HTTP/1.1 Host: cname.domain.com Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
PUT /BUCKET/OBJECT?partNumber=PartNumber&uploadId=UPLOAD_ID HTTP/1.1
Host: cname.domain.com
Authorization: AWS ACCESS_KEY:HASH_OF_HEADER_AND_SECRET
リクエストヘッダー
x-amz-copy-source- 説明
- ソースバケット名およびオブジェクト名。
- 有効な値
- BUCKET/OBJECT
- 必須
- はい
x-amz-copy-source-range- 説明
- ソースオブジェクトからコピーするバイトの範囲。
- 有効な値
-
範囲:
bytes=first-last(ここで、最初のおよび最後は、コピーするゼロベースのバイトオフセットです)たとえば、bytes=0-9は、ソースの最初の 10 バイトをコピーすることを示しています。 - 必須
- いいえ
レスポンスエンティティー
CopyPartResult- 説明
- すべてのレスポンス要素のコンテナー。
- 型
- コンテナー
ETag- 説明
- 新しい部分の ETag を返します。
- 型
- String
LastModified- 説明
- 最後に変更した日付を返します。
- 型
- String
関連情報
- この機能の詳細は、Amazon S3 のサイト を参照してください。
3.4.25. S3 abort a multipart upload リンクのコピーリンクがクリップボードにコピーされました!
複数パートアップロードを中止します。
マルチパートによるアップロードを中止するために uploadId サブリソースとアップロード ID を指定します。
構文
DELETE /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
DELETE /BUCKET/OBJECT?uploadId=UPLOAD_ID HTTP/1.1
3.4.26. S3 Hadoop interoperability リンクのコピーリンクがクリップボードにコピーされました!
HDFS (Hadoop Distributed File System) のアクセスを必要とするデータ解析アプリケーションは、Hadoop 用の Apache S3A コネクターを使用して Ceph Object Gateway にアクセスできます。S3A コネクターは、データが Ceph Object Gateway に保存される一方で、HDFS ファイルシステムがアプリケーションへのセマンティクスを読み取りおよび書き込みする S3 互換のオブジェクトストレージを HDFS ファイルシステムとして表示するオープンソースツールです。
Ceph Object Gateway は、Hadoop 2.7.3 に同梱される S3A コネクターと完全に互換性があります。
3.5. S3 select 操作 リンクのコピーリンクがクリップボードにコピーされました!
開発者は、S3 select を実行してスループットを加速できます。ユーザーは、メディエーターなしで S3 select クエリーを直接実行できます。
S3 select ワークフローには、CSV、Apache Parquet (Parquet)、および JSON の 3 つがあり、CSV、Parquet、および JSON オブジェクトを使用した S3 select 操作を提供します。
- CSV ファイルには、表形式のデータがプレーンテキスト形式で格納されます。ファイルの各行はデータレコードです。
- Parquet は、効率的なデータの保存と取得のために設計された、オープンソースのカラム型のデータファイル形式です。複雑なデータをまとめて処理するための強化されたパフォーマンスを備えた、非常に効率的なデータ圧縮およびエンコーディングスキームを提供します。Parquet を使用すると、S3 select エンジンが列とチャンクをスキップできるため、(CSV および JSON 形式とは対照的に) IOPS が大幅に削減されます。
- JSON はフォーマット構造です。S3 select エンジンは、JSON リーダーを使用して JSON 形式の入力データ上で SQL ステートメントを使用できるようにし、高度にネストされた複雑な JSON 形式のデータのスキャンを可能にします。
たとえば、数ギガバイトのデータを持つ CSV、Parquet または JSON S3 オブジェクトの場合、ユーザーは次のクエリーを使用して、別の列によってフィルター処理された単一の列を抽出できます。
例
select customerid from s3Object where age>30 and age<65;
select customerid from s3Object where age>30 and age<65;
現時点で、S3 オブジェクトはデータのフィルタリングおよび抽出の前に、Ceph Object Gateway 経由で Ceph OSD からデータを取得する必要があります。オブジェクトのサイズが大きく、クエリーが具体的な場合に、パフォーマンスが向上します。Parquet 形式は、CSV よりも効率的に処理できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
- ユーザーアクセスで作成された S3 ユーザー。
3.5.1. S3 select content from an object リンクのコピーリンクがクリップボードにコピーされました!
select object content API は、構造化されたクエリー言語 (SQL) でオブジェクトの内容をフィルターします。インベントリーオブジェクトに含める必要がある内容の記述例は、AWS Systems Manager User Guide の Metadata collected by inventory セクションを参照してください。インベントリーの内容は、そのインベントリーに対して実行する必要があるクエリーのタイプに影響します。重要な情報を提供できる可能性のある SQL ステートメントの数は多いものの、S3 select は SQL に似たユーティリティーであるため、group-by や join などの一部の演算子はサポートされていません。
CSV の場合のみ、オブジェクトのコンマ区切りの値であるデータのシリアライズ形式を指定して、指定のコンテンツを取得する必要があります。Parquet はバイナリー形式であるため、区切り文字はありません。Amazon Web Services (AWS) のコマンドラインインターフェイス (CLI) 選択オブジェクトコンテンツは、CSV または Parquet 形式を使用してオブジェクトデータをレコードに解析し、クエリーで指定されたレコードのみを返します。
応答のデータシリアライゼーション形式を指定する必要があります。この操作には s3:GetObject パーミッションが必要です。
-
InputSerialization要素は、クエリーされるオブジェクトに含まれるデータの形式を記述します。オブジェクトは、CSV または Parquet 形式にすることができます。 -
OutputSerialization要素は AWS-CLI ユーザークライアントの一部で、出力データのフォーマット方法を記述します。Ceph は AWS-CLI のサーバークライアントを実装しているため、現在 CSV のみであるOutputSerializationに従って同じ出力を提供します。 -
InputSerializationの形式は、OutputSerializationの形式と一致する必要はありません。そのため、たとえばInputSerializationで Parquet を指定し、OutputSerializationで CSV を指定することもできます。
構文
POST /BUCKET/KEY?select&select-type=2 HTTP/1.1\r\n
POST /BUCKET/KEY?select&select-type=2 HTTP/1.1\r\n
例
POST /testbucket/sample1csv?select&select-type=2 HTTP/1.1\r\n POST /testbucket/sample1parquet?select&select-type=2 HTTP/1.1\r\n
POST /testbucket/sample1csv?select&select-type=2 HTTP/1.1\r\n
POST /testbucket/sample1parquet?select&select-type=2 HTTP/1.1\r\n
要求エンティティー
Bucket- 説明
- オブジェクトコンテンツを選択するバケット。
- 型
- String
- 必須
- はい
キー- 説明
- オブジェクトキー。
- 長さに関する制約
- 最小長は 1 です。
- 型
- String
- 必須
- はい
SelectObjectContentRequest- 説明
- select オブジェクトコンテンツ要求パラメーターのルートレベルタグ。
- 型
- String
- 必須
- はい
式- 説明
- オブジェクトのクエリーに使用される式。
- 型
- String
- 必須
- はい
ExpressionType- 説明
- SQL など、提供された式のタイプ。
- 型
- String
- 有効な値
- SQL
- 必須
- はい
InputSerialization- 説明
- クエリーされるオブジェクトに含まれるデータの形式を記述します。
- 型
- String
- 必須
- はい
OutputSerialization- 説明
- コンマセパレーターおよび改行で返されるデータの形式。
- 型
- String
- 必須
- はい
応答エンティティー
アクションに成功すると、サービスは HTTP 200 応答を返します。データは、サービスによって XML 形式で返されます。
Payload- 説明
- ペイロードパラメーターのルートレベルタグ。
- 型
- String
- 必須
- はい
Records- 説明
- レコードイベント。
- 型
- base64 でエンコードされたバイナリーデータオブジェクト
- 必須
- いいえ
Stats- 説明
- stats イベント。
- 型
- Long
- 必須
- いいえ
Ceph Object Gateway は以下の応答をサポートします。
例
{:event-type,records} {:content-type,application/octet-stream} {:message-type,event}
{:event-type,records} {:content-type,application/octet-stream} {:message-type,event}
構文 (CSV の場合)
例 (CSV の場合)
構文 (Parquet の場合)
例 (Parquet の場合)
構文 (JSON の場合)
例 (JSON の場合)
例 (BOTO3 の場合)
サポートされる機能
現時点で、AWS s3 select コマンドの一部のみがサポートされます。
3.5.2. S3 supported select functions リンクのコピーリンクがクリップボードにコピーされました!
S3 select は、.Timestamp の機能をサポートします。
- to_timestamp(string)
- 説明
- 文字列をタイムスタンプの基本型に変換します。文字列形式では、'時刻' の値が欠落している場合はゼロが入力されます。月と日の値が欠落している場合は、1 がデフォルト値として入力されます。'タイムゾーン' の形式は +/-HH:mm または Z で、文字 'Z' は協定世界時 (UTC) を示します。タイムゾーンの値の範囲は、-12:00 から +14:00 です。
- サポート対象
現在、次の文字列形式をタイムスタンプに変換できます。
- YYYY-MM-DDTHH:mm:ss.SSSSSS+/-HH:mm
- YYYY-MM-DDTHH:mm:ss.SSSSSSZ
- YYYY-MM-DDTHH:mm:ss+/-HH:mm
- YYYY-MM-DDTHH:mm:ssZ
- YYYY-MM-DDTHH:mm+/-HH:mm
- YYYY-MM-DDTHH:mmZ
- YYYY-MM-DDT
- YYYYT
- to_string(timestamp, format_pattern)
- 説明
- 入力したタイムスタンプの文字列表現を、指定した入力文字列形式で返します。
- パラメーター
| 形式 | 例 | 説明 |
|---|---|---|
| yy | 69 | 年を表す 2 桁の値。 |
| y | 1969 | 年を表す 4 桁の値。 |
| yyyy | 1969 | ゼロパディングされた 4 桁の年。 |
| M | 1 | 月。 |
| MM | 01 | ゼロパディングされた月。 |
| MMM | Jan | 月の名称の省略形。 |
| MMMM | January | 月の正式名称。 |
| MMMMM | J |
月の最初の 1 文字。 |
| d | 2 | 日付 (1 - 31)。 |
| dd | 02 | ゼロパディングされた日付 (01 - 31)。 |
| a | AM | 午前または午後。 |
| h | 3 | 時刻 (1 - 12)。 |
| hh | 03 | ゼロパディングされた時刻 (01 - 12)。 |
| H | 3 | 時刻 (0 - 23)。 |
| HH | 03 | ゼロパディングされた時刻 (00 - 23)。 |
| m | 4 | 分 (0 - 59)。 |
| mm | 04 | ゼロパディングされた分 (00 - 59)。 |
| s | 5 | 秒 (0 - 59)。 |
| ss | 05 | ゼロパディングされた秒 (00 - 59)。 |
| S | 1 | 秒の小数部 (精度: 0.1、範囲: 0.0 - 0.9)。 |
| SS | 12 | 秒の小数部 (精度: 0.01、範囲: 0.0 - 0.99)。 |
| SSS | 123 | 秒の小数部 (精度: 0.01、範囲: 0.0 - 0.999)。 |
| SSSS | 1234 | 秒の小数部 (精度: 0.001、範囲: 0.0 - 0.9999)。 |
| SSSSSS | 123456 | 秒の小数部 (最大精度: 1 ナノ秒、範囲: 0.0 - 0.999999)。 |
| n | 60000000 | ナノ秒部。 |
| X | +07 または Z | 時間単位のオフセット。オフセットが 0 の場合は “Z”。 |
| XX または XXXX | +0700 または Z | 時間と分単位のオフセット。オフセットが 0 の場合は “Z”。 |
| XXX または XXXXX | +07:00 または Z | 時間と分単位のオフセット。オフセットが 0 の場合は “Z”。 |
| x | 7 | 時間単位のオフセット。 |
| xx または xxxx | 700 | 時間と分単位のオフセット。 |
| xxx または xxxxx | +07:00 | 時間と分単位のオフセット。 |
- extract(date-part from timestamp)
- 説明
- 入力タイムスタンプからの date-part の抽出に従って整数を返します。
- サポート対象
- year、month、week、day、hour、minute、second、timezone_hour、timezone_minute。
- date_add(date-part ,integer,timestamp)
- 説明
- 入力されたタイムスタンプと date-part の結果に基づいて計算されたタイムスタンプを返します。
- サポート対象
- year、month、day、hour、minute、second。
- date_diff(date-part,timestamp,timestamp)
- 説明
- 整数を返します。これは、date-part に応じた 2 つのタイムスタンプの差の計算結果です。
- サポート対象
- year、month、day、hour、minute、second。
- utcnow()
- 説明
- 現在の時刻のタイムスタンプを返します。
集約
- count()
- 説明
- (条件がある場合) 条件と一致する行数に基づいて整数を返します。
- sum(expression)
- 説明
- (条件がある場合) 条件と一致する各行の式の概要を返します。
- avg(expression)
- 説明
- (条件がある場合) 条件に一致する各行の平均式を返します。
- max(expression)
- 説明
- (条件がある場合) 条件に一致するすべての式について最大結果を返します。
- min(expression)
- 説明
- (条件がある場合) 条件に一致するすべての式の最小結果を返します。
String
- substring (string,from,for)
- 説明
- from、for の入力に従って入力文字列から抽出した文字列を返します。
- Char_length
- 説明
- 文字列の文字数を返します。Character_length も同じです。
- trim([[leading | trailing | both remove_chars] from] string )
- 説明
- ターゲット文字列から先頭/末尾 (または両方) の文字を削除します。デフォルト値は空白文字です。
- Upper\lower
- 説明
- 文字を大文字または小文字に変換します。
NULL
NULL 値が見つからないか、不明な値で、NULL が任意の演算に値を生成できません。同じことが算術比較にも当てはまります。NULL との比較は不明である NULL です。
| A is NULL | Result(NULL=UNKNOWN) |
|---|---|
| Not A |
|
| A または alse |
|
| A or True |
|
| A or A |
|
| A and False |
|
| A and True |
|
| A and A |
|
3.5.3. S3 alias programming construct リンクのコピーリンクがクリップボードにコピーされました!
エイリアスプログラミング構築は、多くの列または複雑なクエリーを含むオブジェクトを持つプログラミングを容易にするため、s3 select 言語に不可欠な部分です。エイリアス構造を含むステートメントを解析すると、エイリアスを適切な投影列への参照に置き換え、クエリーの実行時に参照が他の式として評価されます。エイリアスは結果キャッシュを維持します。つまり、エイリアスが複数回使用された場合は、キャッシュからの結果が使用されるため、同じ式は評価されず、同じ結果が返されます。現在、Red Hat は列エイリアスをサポートしています。
例
select int(_1) as a1, int(_2) as a2 , (a1+a2) as a3 from s3object where a3>100 and a3<300;")
select int(_1) as a1, int(_2) as a2 , (a1+a2) as a3 from s3object where a3>100 and a3<300;")
3.5.4. S3 解析の説明 リンクのコピーリンクがクリップボードにコピーされました!
S3 select エンジンには、CSV、Parquet、JSON の 3 つのファイル形式すべてに対応するパーサーがあり、コマンドをより処理しやすいコンポーネントに分割します。コンポーネントは、各コンポーネントを定義するタグにアタッチされます。
3.5.4.1. S3 CSV の解析 リンクのコピーリンクがクリップボードにコピーされました!
入力シリアライゼーションを含む CSV 定義では、次のデフォルト値が使用されます。
-
行区切り文字には
{\n}`を使用します。 -
引用には
{“}を使用します。 -
エスケープ文字には
{\}を使用します。
csv-header-info は、AWS-CLI に表示される USE で解析されます。これは、スキーマを含む入力オブジェクトの最初の行です。現在、シリアル化および圧縮タイプの出力はサポートされていません。S3 select エンジンには、S3-objects を解析する CSV パーサーがあります。
- 各行は、行区切り文字で終わります。
- フィールド区切り文字は、隣接する列を区切ります。
-
連続するフィールドの区切り文字は
NULL列を定義します。 - 引用符は、フィールド区切り文字をオーバーライドします。フィールド区切り文字は、引用符の間の任意の文字です。
- エスケープ文字は、行区切り文字以外の特殊文字を無効にします。
以下は、CSV 解析ルールの例です。
| 機能 | 説明 | 入力 (トークン) |
|---|---|---|
|
| 連続するフィールド区切り文字 |
|
|
| 引用符は、フィールドの区切り文字をオーバーライドします。 |
|
|
| エスケープ文字はメタ文字をオーバーライドします。 |
オブジェクトの所有者の |
|
| 終わりの引用符はありません。行区切り文字は終了行になります。 |
|
|
| FileHeaderInfo タグ | USE の値は、最初の行の各トークンが column-name であることを示します。IGNORE 値は最初の行をスキップすることを意味します。 |
3.5.4.2. S3 Parquet の解析 リンクのコピーリンクがクリップボードにコピーされました!
Apache Parquet は、効率的なデータの保存と取得のために設計された、オープンソースのコラム型のデータファイル形式です。
S3 select エンジンの Parquet パーサーは、S3 オブジェクトを次のように解析します。
例
- 上の例のテーブルには N 列あり、M 個の行グループに分割されています。ファイルメタデータには、すべての列メタデータの開始位置が含まれています。
- シングルパス書き込みを可能にするために、メタデータはデータの後に書き込まれます。
- すべての列チャンクはファイルメタデータ内にあり、後で順次読み取る必要があります。
- この形式は、メタデータをデータから分離するように明示的に設計されています。これにより、列を複数のファイルに分割したり、単一のメタデータファイルで複数の parquet ファイルを参照したりすることができます。
3.5.4.3. S3 JSON の解析 リンクのコピーリンクがクリップボードにコピーされました!
JSON ドキュメントでは、オブジェクトまたは配列内で制限なく値をネストできます。S3 select エンジンで JSON ドキュメント内の特定の値をクエリーする場合、値の場所は SELECT ステートメントのパスで指定されます。
JSON ドキュメントの一般的な構造には、CSV や Parquet のような行と列の構造はありません。代わりに、SQL ステートメント自体が、JSON ドキュメントをクエリーするときに行と列を定義します。
S3 select エンジンの JSON パーサーは、S3 オブジェクトを次のように解析します。
-
SELECTステートメントのFROM句は行の境界を定義します。 - JSON ドキュメント内の行は、行区切り文字を使用して CSV オブジェクトの行を定義する方法や、行グループを使用して Parquet オブジェクトの行を定義する方法と似ています。
以下の例を考慮してください。
例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
このステートメントは、リーダーにパス
aa.bb.ccを検索するように指示し、このパスの出現に基づいて行の境界を定義します。 -
行は、リーダーがパスを検出したときに始まり、リーダーがパスの最も内側の部分 (この場合はオブジェクト
cc) を出たときに終了します。
-
このステートメントは、リーダーにパス
3.5.5. Ceph Object Gateway と Trino の統合 リンクのコピーリンクがクリップボードにコピーされました!
Ceph Object Gateway を Trino と統合します。Trino は、ユーザーが S3 オブジェクト上で SQL クエリーを 9 倍の速度で実行できるようにする重要なユーティリティーです。
Trino を使用するいくつかの利点を以下に示します。
- Trino は完全な SQL エンジンです。
- S3 select リクエストをプッシュダウンします。プッシュダウンでは、Trino エンジンが、サーバー側で実行するとコスト効率が高い SQL ステートメントの一部を特定します。
- Ceph/S3select の最適化ルールを使用してパフォーマンスを向上します。
- Red Hat Ceph Storage のスケーラビリティを活用して、元のオブジェクトを複数の部分に等分し、S3 select リクエストを実行して、リクエストをマージします。
trino を使用してクエリーしているときに s3select 構文が機能しない場合は、SQL 構文を使用してください。
前提条件
- Ceph Object Gateway がインストールされた Red Hat Ceph Storage クラスターが実行中である。
- Docker または Podman がインストールされている。
- バケットが作成されている。
- オブジェクトがアップロードされている。
手順
Trino と hive をデプロイします。
例
git clone https://github.com/ceph/s3select.git cd s3select
[cephuser@host01 ~]$ git clone https://github.com/ceph/s3select.git [cephuser@host01 ~]$ cd s3selectCopy to Clipboard Copied! Toggle word wrap Toggle overflow S3 エンドポイント、アクセスキー、およびシークレットキーを使用して
hms_trino.yamlファイルを変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow S3 エンドポイント、アクセスキー、およびシークレットキーを使用して
hive.propertiesファイルを変更します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trino コンテナーを起動して Ceph Object Gateway を統合します。
例
sudo docker compose -f ./container/trino/hms_trino.yaml up -d
[cephuser@host01 s3select]$ sudo docker compose -f ./container/trino/hms_trino.yaml up -dCopy to Clipboard Copied! Toggle word wrap Toggle overflow 統合を確認します。
例
sudo docker exec -it trino /bin/bash
[cephuser@host01 s3select]$ sudo docker exec -it trino /bin/bash trino@66f753905e82:/$ trino trino> create schema hive.csvbkt1schema; trino> create table hive.csvbkt1schema.polariondatacsv(c1 varchar,c2 varchar, c3 varchar, c4 varchar, c5 varchar, c6 varchar, c7 varchar, c8 varchar, c9 varchar) WITH ( external_location = 's3a://csvbkt1/',format = 'CSV'); trino> select * from hive.csvbkt1schema.polariondatacsv;Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記外部の場所は、ファイルの末尾ではなく、バケット名またはディレクトリーを指す必要があります。
第4章 Ceph Object Gateway および Swift API リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Swift API データアクセスモデルと互換性のある RESTful アプリケーションプログラミングインターフェイス (API) を使用できます。Ceph Object Gateway を使用して、Red Hat Ceph Storage クラスターに保存されているバケットおよびオブジェクトを管理できます。
以下の表は、現在の Swift 機能機能のサポート状況を示しています。
| 機能 | 状態 | 備考 |
|---|---|---|
| サポート対象 | ||
| アカウントメタデータの取得 | サポート対象 | カスタムメタデータなし |
| サポート対象 | Swift ACL のサブセットに対応 | |
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| コンテナーメタデータの取得 | サポート対象 | |
| サポート対象 | ||
| コンテナーメタデータの削除 | サポート対象 | |
| サポート対象 | ||
| サポート対象 | ||
| 大規模オブジェクトの作成 | サポート対象 | |
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| サポート対象 | ||
| CORS | サポート対象外 | |
| オブジェクトの期限設定 | サポート対象 | |
| オブジェクトのバージョン管理 | サポート対象外 | |
| 静的な Web サイト | サポート対象外 |
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
4.1. Swift API の制限 リンクのコピーリンクがクリップボードにコピーされました!
以下の制限事項を使用してください。お使いのハードウェアの選択には影響があるため、この要件を Red Hat アカウントチームと常に相談してください。
- Swift API を使用する場合の最大オブジェクトサイズ: 5GB
- Swift API を使用する場合のメタデータの最大サイズ: オブジェクトに適用できるユーザーメタデータの合計サイズに定義された制限はありませんが、単一の HTTP 要求は 16,000 バイトに制限されます。
4.2. Swift ユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
Swift インターフェイスをテストするには、Swift サブユーザーを作成します。Swift ユーザーは、2 つの手順で作成します。最初のステップでは、ユーザーを作成します。次のステップでは、秘密鍵を作成します。
マルチサイトのデプロイメントでは、マスターゾーングループのマスターゾーンにあるホストでユーザーを作成します。
前提条件
- Ceph Object Gateway のインストール
- Ceph Object Gateway ノードへのルートレベルのアクセスがある。
手順
Swift ユーザーを作成します。
構文
radosgw-admin subuser create --uid=NAME --subuser=NAME:swift --access=full
radosgw-admin subuser create --uid=NAME --subuser=NAME:swift --access=fullCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAMEを Swift ユーザー名に置き換えます。以下に例を示します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットキーを作成します。
構文
radosgw-admin key create --subuser=NAME:swift --key-type=swift --gen-secret
radosgw-admin key create --subuser=NAME:swift --key-type=swift --gen-secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow NAMEを Swift ユーザー名に置き換えます。以下に例を示します。例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. ユーザーの Swift 認証 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーを認証するには、X-Auth-User および X-Auth-Key を含むリクエストを作成します。
構文
GET /auth HTTP/1.1 Host: swift.example.com X-Auth-User: johndoe X-Auth-Key: R7UUOLFDI2ZI9PRCQ53K
GET /auth HTTP/1.1
Host: swift.example.com
X-Auth-User: johndoe
X-Auth-Key: R7UUOLFDI2ZI9PRCQ53K
レスポンスの例
認証中に X-Storage-Url 値を使用して GET リクエストを実行すると、Ceph の Swift 互換サービスに関するデータを取得できます。
関連情報
- Swift リクエストヘッダーについては Red Hat Ceph Storage 開発者ガイド を参照してください。
- Swift レスポンスヘッダーについては Red Hat Ceph Storage 開発者ガイド を参照してください。
4.4. Swift コンテナー操作 リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Ceph Object Gateway 経由で Swift アプリケーションのプログラミングインターフェイス (API) を使用してコンテナーの操作を行うことができます。コンテナーをリスト表示、作成、更新、および削除できます。コンテナーのメタデータを追加または更新できます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
4.4.1. Swift コンテナー操作 リンクのコピーリンクがクリップボードにコピーされました!
コンテナーは、データオブジェクトを格納するメカニズムです。アカウントには多くのコンテナーを持たせることができますが、コンテナー名は一意でなければなりません。この API により、クライアントはコンテナーの作成、アクセス制御およびメタデータの設定、コンテナーのコンテンツの取得、およびコンテナーの削除を行うことができます。この API は特定のユーザーのアカウントの情報に関連するリクエストを行うため、コンテナーのアクセス制御が意図的に公開されていない限り、つまり匿名のリクエストを許可しない限り、この API のすべてのリクエストを認証する必要があります。
Amazon S3 API は 'バケット' という用語を使用してデータコンテナーを記述します。Swift API 内の 'バケット' を参照すると、バケットという用語はコンテナーという用語と同じものになります。
オブジェクトストレージの 1 つは、階層パスやディレクトリーをサポートしないことです。代わりに、各コンテナーにオブジェクトがある 1 つ以上のコンテナーで構成される 1 つのレベルをサポートします。RADOS Gateway の Swift 互換 API は、疑似階層コンテナーの概念をサポートします。これは、オブジェクトの命名を使用してコンテナーをエミュレートする手段で、ストレージシステムで実際には実装されません。たとえば、photos/buildings/empire-state.jpg のように、疑似階層名でオブジェクトに名前を付けることができますが、コンテナー名にスラッシュ (/) 文字を含めることはできません。
バージョン付けされた Swift コンテナーに大規模なオブジェクトをアップロードする場合は、python-swiftclient ユーティリティーで --leave-segments オプションを使用します。--leave-segments を使用しないと、マニフェストファイルが上書きされます。したがって、既存のオブジェクトは上書きされ、データが失われることになります。
4.4.2. Swift でコンテナーのアクセス制御リスト (ACL) の更新 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーがコンテナーを作成すると、ユーザーはデフォルトでコンテナーへの読み取り/書き込みアクセスを持ちます。その他のユーザーがコンテナーのコンテンツを読み取りしたり、コンテナーに書き込むことを許可するには、ユーザーを明示的に有効にする必要があります。X-Container-Read または X-Container-Write に * を指定することもできます。これにより、すべてのユーザーがコンテナーから読み取るか、コンテナーへの書き込みが可能になります。* を設定すると、コンテナーが公開されます。これにより、匿名ユーザーがコンテナーから読み込むか、コンテナーに書き込むことができます。
構文
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN X-Container-Read: * X-Container-Write: UID1, UID2, UID3
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
X-Container-Read: *
X-Container-Write: UID1, UID2, UID3
リクエストヘッダー
X-Container-Read- 説明
- コンテナーの読み取りパーミッションを持つユーザー ID。
- 型
- ユーザー ID のコンマ区切りの文字列値。
- 必須
- いいえ
X-Container-Write- 説明
- コンテナーの書き込みパーミッションを持つユーザー ID。
- 型
- ユーザー ID のコンマ区切りの文字列値。
- 必須
- いいえ
4.4.3. Swift リストコンテナー リンクのコピーリンクがクリップボードにコピーされました!
API バージョンを指定し、アカウントは特定のユーザーアカウントのコンテナーのリストを返す GET リクエスト。リクエストは特定のユーザーのコンテナーを返すため、リクエストには認証トークンが必要です。リクエストは匿名で行われません。
構文
GET /API_VERSION/ACCOUNT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
GET /API_VERSION/ACCOUNT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストパラメーター
limit- 説明
- 結果の数を指定の値に制限します。
- 型
- Integer
- 有効な値
- 該当なし
- 必須
- はい
format- 説明
- 結果の数を指定の値に制限します。
- 型
- Integer
- 有効な値
-
jsonまたはxml - 必須
- いいえ
marker- 説明
- マーカー値よりも大きな結果のリストを返します。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
応答にはコンテナーの一覧が含まれるか、204 応答コードで返されます。
レスポンスエンティティー
アカウント- 説明
- アカウント情報のリスト。
- 型
- コンテナー
container- 説明
- コンテナーのリスト。
- 型
- コンテナー
name- 説明
- コンテナーの名前。
- 型
- String
bytes- 説明
- コンテナーのサイズ。
- 型
- Integer
4.4.4. Swift でコンテナーオブジェクトのリスト表示 リンクのコピーリンクがクリップボードにコピーされました!
コンテナー内のオブジェクトをリスト表示するには、API バージョン、アカウント、およびコンテナーの名前を使用して GET リクエストを行います。クエリーパラメーターを指定して完全なリストをフィルタリングしたり、パラメーターを除外してコンテナーに保存されている最初の 10,000 オブジェクト名の一覧を返すこともできます。
構文
GET /API_VERSION/TENANT:CONTAINER HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
GET /API_VERSION/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストパラメーター
format- 説明
- 結果の数を指定の値に制限します。
- 型
- Integer
- 有効な値
-
jsonまたはxml - 必須
- いいえ
prefix- 説明
- 結果を、指定した接頭辞で始まるオブジェクトに制限します。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
marker- 説明
- マーカー値よりも大きな結果のリストを返します。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
limit- 説明
- 結果の数を指定の値に制限します。
- 型
- Integer
- 有効な値
- 0 - 10,000
- 必須
- いいえ
delimiter- 説明
- 接頭辞と他のオブジェクト名の間に挿入される区切り文字。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
path- 説明
- オブジェクトの擬似階層パス。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
レスポンスエンティティー
container- 説明
- コンテナー
- 型
- コンテナー
object- 説明
- コンテナー内のオブジェクト。
- 型
- コンテナー
name- 説明
- コンテナー内のオブジェクトの名前。
- 型
- String
ハッシュ- 説明
- オブジェクトのコンテンツのハッシュコード。
- 型
- String
last_modified- 説明
- オブジェクトの内容を最後に変更した時間。
- 型
- 日付
content_type- 説明
- オブジェクト内のコンテンツのタイプ。
- 型
- String
4.4.5. Swift でコンテナーの作成 リンクのコピーリンクがクリップボードにコピーされました!
新規コンテナーを作成するには、API バージョン、アカウント、および新規コンテナーの名前で PUT 要求を行います。コンテナー名は一意である必要があります。スラッシュ ( /) を含めることはできず、256 バイト未満でなければなりません。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。一連の配置プールのキーを特定するストレージポリシーを含めることもできます。たとえば、radosgw-admin zone get を実行すると、placement_pools で利用可能なキーのリストを確認します。ストレージポリシーを使用すると、SSD ベースのストレージなど、コンテナーの特別なプールセットを指定できます。操作には、べき等性があります。既存のコンテナーを作成するように要求すると、HTTP 202 戻りコードが返されますが、別のコンテナーは作成されません。
構文
ヘッダー
X-Container-Read- 説明
- コンテナーの読み取りパーミッションを持つユーザー ID。
- 型
- ユーザー ID のコンマ区切りの文字列値。
- 必須
- いいえ
X-Container-Write- 説明
- コンテナーの書き込みパーミッションを持つユーザー ID。
- 型
- ユーザー ID のコンマ区切りの文字列値。
- 必須
- いいえ
X-Container-Meta-KEY- 説明
- 任意の文字列の値を取得するユーザー定義のメタデータキー。
- 型
- String
- 必須
- いいえ
X-Storage-Policy- 説明
-
Ceph Object Gateway の
placement_pools下にあるストレージポリシーを識別するキー。radosgw-admin zone getを実行し、利用可能なキーを取得します。 - 型
- String
- 必須
- いいえ
同じ名前のコンテナーがすでに存在し、ユーザーがコンテナー所有者である場合、操作は成功します。そうでないと、操作は失敗します。
HTTP レスポンス
409- ステータスコード
-
BucketAlreadyExists - 説明
- コンテナーは、別のユーザーの所有権にすでに存在します。
4.4.6. Swift コンテナーの削除 リンクのコピーリンクがクリップボードにコピーされました!
コンテナーを削除するには、API バージョン、アカウント、およびコンテナーの名前を使用して DELETE 要求を行います。コンテナーは空である必要があります。コンテナーが空であるかを確認する場合は、コンテナーに対して HEAD リクエストを実行します。コンテナーが正常に削除されると、コンテナー名を再利用できます。
構文
DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
HTTP レスポンス
204- ステータスコード
-
NoContent - 説明
- コンテナーが削除されました。
4.4.7. Swift がコンテナーのメタデータを追加または更新 リンクのコピーリンクがクリップボードにコピーされました!
コンテナーにメタデータを追加するには、API バージョン、アカウント、およびコンテナー名で POST 要求を行います。メタデータを追加または更新するには、コンテナーに対する書き込み権限が必要です。
構文
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN X-Container-Meta-Color: red X-Container-Meta-Taste: salty
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
X-Container-Meta-Color: red
X-Container-Meta-Taste: salty
リクエストヘッダー
X-Container-Meta-KEY- 説明
- 任意の文字列の値を取得するユーザー定義のメタデータキー。
- 型
- String
- 必須
- いいえ
4.5. Swift オブジェクト操作 リンクのコピーリンクがクリップボードにコピーされました!
開発者は、Ceph Object Gateway 経由で Swift アプリケーションのプログラミングインターフェイス (API) を使用してオブジェクト操作を行うことができます。オブジェクトをリスト表示、作成、更新、および削除することができます。オブジェクトのメタデータを追加または更新することもできます。
前提条件
- 稼働中の Red Hat Ceph Storage クラスターがある。
- RESTful クライアント。
4.5.1. Swift オブジェクト操作 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトは、データおよびメタデータを保存するコンテナーです。コンテナーには多くのオブジェクトがありますが、オブジェクト名は一意である必要があります。この API により、クライアントはオブジェクトの作成、アクセス制御およびメタデータの設定、オブジェクトのデータおよびメタデータの取得、およびオブジェクトの削除を行うことができます。この API は特定のユーザーのアカウントの情報に関連するリクエストを行うため、この API のすべてのリクエストを認証する必要があります。コンテナーまたはオブジェクトのアクセス制御が意図的に公開されていない限り、つまり匿名の要求を許可している場合を除きます。
4.5.2. Swift がオブジェクトを取得 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトを取得するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して GET リクエストを行います。コンテナー内のオブジェクトを取得するには、コンテナーの読み取り権限が必要です。
構文
GET /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
GET /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストヘッダー
range- 説明
- オブジェクトの内容のサブセットを取得するには、バイト範囲を指定します。
- 型
- 日付
- 必須
- いいえ
If-Modified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更された場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
If-Unmodified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更した場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
Copy-If-Match- 説明
- リクエストの ETag がソースオブジェクトの ETag と一致する場合にのみコピーします。
- 型
- ETag
- 必須
- いいえ
Copy-If-None-Match- 説明
-
リクエストの
ETagがソースオブジェクトの ETag と一致しない場合にのみコピーします。 - 型
- ETag
- 必須
- いいえ
レスポンスヘッダー
Content-Range- 説明
- オブジェクトコンテンツのサブセットの範囲。range ヘッダーフィールドがリクエストで指定されている場合にのみ返されます。
4.5.3. Swift でオブジェクトの作成または更新 リンクのコピーリンクがクリップボードにコピーされました!
新規オブジェクトを作成するには、API バージョン、アカウント、コンテナー名、および新規オブジェクトの名前を使用して PUT 要求を行います。オブジェクトを作成または更新するには、コンテナーに書き込みパーミッションが必要です。オブジェクト名は、コンテナー内で一意である必要があります。PUT リクエストはべき等ではないため、一意の名前を使用しないと、リクエストによりオブジェクトが更新されます。ただし、オブジェクト名に疑似階層構文を使用して、別の疑似階層ディレクトリーにある場合は、同じ名前の別のオブジェクトと区別することができます。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。
構文
PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストヘッダー
ETag- 説明
- オブジェクトの内容の MD5 ハッシュ。推奨。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
Content-Type- 説明
- オブジェクトの内容の MD5 ハッシュ。
- 型
- String
- 有効な値
- 該当なし
- 必須
- いいえ
Transfer-Encoding- 説明
- オブジェクトが大規模な集約オブジェクトの一部であるかどうかを示します。
- 型
- String
- 有効な値
-
chunked - 必須
- いいえ
4.5.4. Swift でオブジェクトの削除 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトを削除するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して DELETE リクエストを行います。コンテナー内のオブジェクトを削除するには、コンテナーに対する書き込み権限が必要です。オブジェクトが正常に削除されると、オブジェクト名を再利用できます。
構文
DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
4.5.5. Swift でオブジェクトのコピー リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトのコピーを使用すると、オブジェクトをダウンロードしたり、別のコンテナーにアップロードしたりしなくてもよいように、オブジェクトのサーバー側のコピーを作成できます。あるオブジェクトのコンテンツを別のオブジェクトにコピーするには、API バージョン、アカウント、およびコンテナー名で PUT 要求または COPY 要求を行います。
PUT 要求の場合は、要求で宛先コンテナーおよびオブジェクト名、および要求ヘッダーのソースコンテナーおよびオブジェクトを使用します。
Copy リクエストには、要求でソースコンテナーおよびオブジェクト、および要求ヘッダーの宛先コンテナーおよびオブジェクトを使用します。オブジェクトをコピーするには、コンテナーに書き込みパーミッションが必要です。宛先オブジェクト名は、コンテナー内で一意である必要があります。リクエストはべき等ではないため、一意の名前を使用しないと、リクエストにより宛先オブジェクトが更新されます。宛先オブジェクトが別の疑似階層ディレクトリーにある場合は、オブジェクト名に疑似階層構文を使用して、同じ名前のソースオブジェクトと区別できます。リクエストには、アクセス制御ヘッダーおよびメタデータヘッダーを含めることができます。
構文
PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1 X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
または、次のようになります。
構文
COPY /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1 Destination: TENANT:DEST_CONTAINER/DEST_OBJECT
COPY /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT
リクエストヘッダー
X-Copy-From- 説明
-
ソースコンテナー/オブジェクトパスを定義するために
PUTリクエストで使用されます。 - 型
- String
- 必須
-
はい (
PUTを使用している場合)
宛先- 説明
-
宛先コンテナー/オブジェクトパスを定義するために
COPY要求で使用されます。 - 型
- String
- 必須
-
はい (
COPYを使用している場合)
If-Modified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更された場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
If-Unmodified-Since- 説明
-
ソースオブジェクトの
last_modified属性の日時以降に変更した場合のみコピーします。 - 型
- 日付
- 必須
- いいえ
Copy-If-Match- 説明
- リクエストの ETag がソースオブジェクトの ETag と一致する場合にのみコピーします。
- 型
- ETag
- 必須
- いいえ
Copy-If-None-Match- 説明
-
リクエストの
ETagがソースオブジェクトの ETag と一致しない場合にのみコピーします。 - 型
- ETag
- 必須
- いいえ
4.5.6. Swift でオブジェクトメタデータの取得 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトのメタデータを取得するには、API バージョン、アカウント、コンテナー、およびオブジェクト名を使用して HEAD リクエストを行います。コンテナー内のオブジェクトからメタデータを取得するには、コンテナーの読み取り権限が必要です。このリクエストは、オブジェクト自体の要求と同じヘッダー情報を返しますが、オブジェクトのデータを返しません。
構文
HEAD /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
HEAD /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
4.5.7. Swift によるオブジェクトメタデータの追加または更新 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトにメタデータを追加するには、API バージョン、アカウント、コンテナー、およびオブジェクト名で POST リクエストを行います。メタデータを追加または更新するには、親コンテナーに対する書き込み権限が必要です。
構文
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
POST /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストヘッダー
X-Object-Meta-KEY- 説明
- 任意の文字列の値を取得するユーザー定義のメタデータキー。
- 型
- String
- 必須
- いいえ
4.6. Swift の一時 URL 操作 リンクのコピーリンクがクリップボードにコピーされました!
一時的なアクセスを可能にするため、radosgw の swift エンドポイントによりサポートされます。たとえば、GET リクエストは、認証情報を共有せずにオブジェクトに送信されます。
この機能には、最初に X-Account-Meta-Temp-URL-Key の値を設定し、必要に応じて X-Account-Meta-Temp-URL-Key-2 を設定する必要があります。Temp URL 機能は、これらの秘密鍵に対する HMAC-SHA1 署名に依存します。
4.7. Swift が一時 URL オブジェクトを取得 リンクのコピーリンクがクリップボードにコピーされました!
一時 URL は、以下の要素を含む暗号化 HMAC-SHA1 署名を使用します。
- Request メソッドの値 (例: "GET")
- エポックからの経過時間 (秒単位)。つまり Unix 時間です。
- "v1" 以降のリクエストパス
上記の項目は、それらの間に新しい行が追加されて正規化され、HMAC は前述の Temp URL キーのいずれかに対して SHA-1 ハッシュアルゴリズムを使用して生成されます。
上記を示すサンプルの Python スクリプトを以下に示します。
例
出力例
https://objectstore.example.com/v1/your-bucket/your-object?temp_url_sig=ff4657876227fc6025f04fcf1e82818266d022c6&temp_url_expires=1423200992
https://objectstore.example.com/v1/your-bucket/your-object?temp_url_sig=ff4657876227fc6025f04fcf1e82818266d022c6&temp_url_expires=1423200992
4.8. Swift POST 一時 URL キー リンクのコピーリンクがクリップボードにコピーされました!
必要なキーを持つ swift アカウントへの POST リクエストは、一時 URL アクセスをアカウントに提供できるアカウントのシークレット一時 URL キーを設定します。最大 2 つのキーがサポートされ、一時 URL を無効化せずに鍵をローテーションできるように、両方のキーに対して署名がチェックされます。
構文
POST /API_VERSION/ACCOUNT HTTP/1.1 Host: FULLY_QUALIFIED_DOMAIN_NAME X-Auth-Token: AUTH_TOKEN
POST /API_VERSION/ACCOUNT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN
リクエストヘッダー
X-Account-Meta-Temp-URL-Key- 説明
- 任意の文字列値を取るユーザー定義のキー。
- 型
- String
- 必須
- はい
X-Account-Meta-Temp-URL-Key-2- 説明
- 任意の文字列値を取るユーザー定義のキー。
- 型
- String
- 必須
- いいえ
4.9. Swift マルチテナンシーコンテナーの操作 リンクのコピーリンクがクリップボードにコピーされました!
クライアントアプリケーションがコンテナーにアクセスする場合は、常に特定ユーザーの認証情報で動作します。Red Hat Ceph Storage クラスターでは、すべてのユーザーがテナントに属します。そのため、テナントが明示的に指定されていない場合、すべてのコンテナー操作のコンテキストに暗黙的なテナントがあります。したがって、マルチテナンシーは、参照されるコンテナーと、参照しているユーザーが同じテナントに属する限り、以前のリリースと完全に後方互換性があります。
明示的なテナントの指定に使用される拡張機能は、使用されるプロトコルおよび認証システムによって異なります。
テナントとコンテナーはコロンで区切ります。したがって、URL は以下のようになります。
例
https://rgw.domain.com/tenant:container
https://rgw.domain.com/tenant:container
一方、create_container() メソッドでは、コンテナーメソッド自体でテナントとコンテナーを分離します。
例
create_container("tenant:container")
create_container("tenant:container")
付録A Ceph RESTful API 仕様 リンクのコピーリンクがクリップボードにコピーされました!
ストレージ管理者は、Ceph RESTful API エンドポイントを通じてさまざまな Ceph サブシステムにアクセスできます。これは、利用可能な Ceph RESTful API メソッドの参照ガイドです。
利用可能な Ceph API エンドポイント:
- 「Ceph の概要」
- 「認証」
- 「Ceph ファイルシステム」
- 「ストレージクラスターの設定」
- 「CRUSH ルール」
- 「イレイジャーコードプロファイル」
- 「機能トグル」
- 「Grafana」
- 「ストレージクラスターの正常性」
- 「Logs」
- 「Ceph Manager モジュール」
- 「Ceph Monitor」
- 「Ceph OSD」
- 「Ceph Object Gateway」
- 「ロールを操作する REST API」
- 「NFS Ganesha」
- 「Ceph Orchestrator」
- 「Pools」
- 「Prometheus」
- 「RADOS ブロックデバイス」
- 「パフォーマンスカウンター」
- 「ロール」
- 「サービス」
- 「Settings」
- 「Ceph タスク」
- 「テレメトリー」
- 「Ceph ユーザー」
前提条件
- RESTful API の使用方法を理解します。
- 正常かつ実行中の Red Hat Ceph Storage クラスター
-
Ceph Manager の
dashboardモジュールが有効化されている。
A.1. Ceph の概要 リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API summary エンドポイントを使用するためのメソッド参照。Ceph のサマリーの詳細を表示することができます。
GET /api/summary- 説明
- Ceph の詳細の概要を表示します。
- 例
GET /api/summary HTTP/1.1 Host: example.com
GET /api/summary HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.2. 認証 リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API auth エンドポイントを使用するメソッド参照。Red Hat Ceph Storage でセッションを開始します。
POST /api/auth- Curl の例
curl -i -k --location -X POST 'https://192.168.0.44:8443/api/auth' -H 'Accept: application/vnd.ceph.api.v1.0+json' -H 'Content-Type: application/json' --data '{"password": "admin@123", "username": "admin"}'curl -i -k --location -X POST 'https://192.168.0.44:8443/api/auth' -H 'Accept: application/vnd.ceph.api.v1.0+json' -H 'Content-Type: application/json' --data '{"password": "admin@123", "username": "admin"}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/auth/check- 説明
- 認証トークンの要件を確認します。
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/auth/logout- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.3. Ceph ファイルシステム リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API cephfs エンドポイントを使用して Ceph File Systems (CephFS) を管理するためのメソッド参照。
GET /api/cephfs- 例
GET /api/cephfs HTTP/1.1 Host: example.com
GET /api/cephfs HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。
-
- 例
GET /api/cephfs/FS_ID HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/cephfs/FS_ID/client/CLIENT_ID- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 -
CLIENT_IDは、Ceph クライアント識別子の文字列に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID/clients- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。
-
- 例
GET /api/cephfs/FS_ID/clients HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID/clients HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID/get_root_directory- 説明
-
ls_dirAPI 呼び出しを使用して取得できない root ディレクトリー。 - パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。
-
- 例
GET /api/cephfs/FS_ID/get_root_directory HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID/get_root_directory HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID/ls_dir- 説明
- 指定のパスのディレクトリーをリスト表示します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 クエリー:
-
path: リストを開始する文字列の値。デフォルトのパスは、指定されていない場合は/になります。 -
depth: ディレクトリーツリーを下るステップ数を指定する整数値。
-
-
- 例
GET /api/cephfs/FS_ID/ls_dir HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID/ls_dir HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID/mds_counters- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 クエリー:
-
カウンター: 整数値。
-
-
- 例
GET /api/cephfs/FS_ID/mds_counters HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID/mds_counters HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cephfs/FS_ID/quota- 説明
- 指定されたパスの CephFS クォータを表示します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 クエリー:
-
path:ディレクトリーパスを指定する必須文字列の値。
-
-
- 例
GET /api/cephfs/FS_ID/quota?path=STRING HTTP/1.1 Host: example.com
GET /api/cephfs/FS_ID/quota?path=STRING HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/cephfs/FS_ID/quota- 説明
- 指定されたパスのクォータを設定します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 -
max_bytes: バイト制限を定義する文字列の値。 -
max_files: ファイル制限を定義する文字列の値。 -
path:ディレクトリーまたはファイルへのパスを定義する文字列値。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/cephfs/FS_ID/snapshot- 説明
- スナップショットを削除します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 クエリー:
-
name: スナップショット名を指定する必須文字列の値。 -
path: ディレクトリーへのパスを定義する必須の文字列値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/cephfs/FS_ID/snapshot- 説明
- スナップショットを作成します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 -
name: スナップショット名を指定する文字列の値。名前が指定されていない場合は、RFC3339 UTC 形式の現在の時間を使用して名前が生成されます。 -
path: ディレクトリーへのパスを定義する文字列の値です。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/cephfs/FS_ID/tree- 説明
- ディレクトリーを削除します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 クエリー:
-
path: ディレクトリーへのパスを定義する必須の文字列値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/cephfs/FS_ID/tree- 説明
- ディレクトリーを作成します。
- パラメーター
-
FS_IDは、Ceph File System の ID 文字列に置き換えます。 -
path: ディレクトリーへのパスを定義する文字列の値です。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.4. ストレージクラスターの設定 リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API cluster_conf エンドポイントを使用して Red Hat Ceph Storage クラスターを管理するためのメソッド参照。
GET /api/cluster_conf- 例
GET /api/cluster_conf HTTP/1.1 Host: example.com
GET /api/cluster_conf HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/cluster_conf- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/cluster_conf- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cluster_conf/filter- 説明
- 名前でストレージクラスター設定を表示します。
- パラメーター
クエリー:
-
names: 設定オプション名の文字列値。
-
- 例
GET /api/cluster_conf/filter HTTP/1.1 Host: example.com
GET /api/cluster_conf/filter HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/cluster_conf/NAME- パラメーター
-
NAMEをストレージクラスター設定名に置き換えます。 クエリー:
-
section: 必要な文字列値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/cluster_conf/NAME- パラメーター
-
NAMEをストレージクラスター設定名に置き換えます。
-
- 例
GET /api/cluster_conf/NAME HTTP/1.1 Host: example.com
GET /api/cluster_conf/NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.5. CRUSH ルール リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API crush_rule エンドポイントを使用して CRUSH ルールを管理するメソッド参照。
GET /api/crush_rule- 説明
- CRUSH ルール設定をリスト表示します。
- 例
GET /api/crush_rule HTTP/1.1 Host: example.com
GET /api/crush_rule HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/crush_rule- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/crush_rule/NAME- パラメーター
-
NAMEは、ルール名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/crush_rule/NAME- パラメーター
-
NAMEは、ルール名に置き換えます。
-
- 例
GET /api/crush_rule/NAME HTTP/1.1 Host: example.com
GET /api/crush_rule/NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.6. イレイジャーコードプロファイル リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の erasure_code_profile エンドポイントを使用するメソッド参照を使用して、イレイジャーコーディングのプロファイルを管理します。
GET /api/erasure_code_profile- 説明
- イレイジャーコーディングされたプロファイル情報をリスト表示します。
- 例
GET /api/erasure_code_profile HTTP/1.1 Host: example.com
GET /api/erasure_code_profile HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/erasure_code_profile- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing, check the task queue.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/erasure_code_profile/NAME- パラメーター
-
NAMEは、プロファイル名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/erasure_code_profile/NAME- パラメーター
-
NAMEは、プロファイル名に置き換えます。
-
- 例
GET /api/erasure_code_profile/NAME HTTP/1.1 Host: example.com
GET /api/erasure_code_profile/NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 202 Accepted – Operation is still executing, check the task queue.
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.7. 機能トグル リンクのコピーリンクがクリップボードにコピーされました!
CRUSH ルールを管理する Ceph RESTful API feature_toggles エンドポイントを使用するメソッド参照。
GET /api/feature_toggles- 説明
- Red Hat Ceph Storage の機能をリスト表示します。
- 例
GET /api/feature_toggles HTTP/1.1 Host: example.com
GET /api/feature_toggles HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.8. Grafana リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API grafana エンドポイントを使用して Grafana を管理するためのメソッド参照。
POST /api/grafana/dashboards- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/grafana/url- 説明
- Grafana URL インスタンスをリスト表示します。
- 例
GET /api/grafana/url HTTP/1.1 Host: example.com
GET /api/grafana/url HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/grafana/validation/PARAMS- パラメーター
-
PARAMSを文字列値に置き換えます。
-
- 例
GET /api/grafana/validation/PARAMS HTTP/1.1 Host: example.com
GET /api/grafana/validation/PARAMS HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.9. ストレージクラスターの正常性 リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の health エンドポイントを使用するメソッド参照。ストレージクラスターの正常性の詳細およびステータスを表示します。
GET /api/health/full- 例
GET /api/health/full HTTP/1.1 Host: example.com
GET /api/health/full HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/health/minimal- 説明
- ストレージクラスターの最小限の正常性レポートを表示します。
- 例
GET /api/health/minimal HTTP/1.1 Host: example.com
GET /api/health/minimal HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.10. Host リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API host エンドポイントを使用して、ノードとも呼ばれるホストの情報を表示するためのメソッド参照。
GET /api/host- 説明
- ホストの仕様をリスト表示します。
- パラメーター
クエリー:
-
sources: ホストソースの文字列値。
-
- 例
GET /api/host HTTP/1.1 Host: example.com
GET /api/host HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/host- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/host/HOST_NAME- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/host/HOST_NAME- 説明
- 指定したホストの情報を表示します。
- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。
-
- 例
GET /api/host/HOST_NAME HTTP/1.1 Host: example.com
GET /api/host/HOST_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/host/HOST_NAME- 説明
- 指定したホストの情報を更新します。この方法は、Ceph Orchestrator が有効な場合にのみサポートされます。
- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。 -
force: ホストがメンテナンスモードに強制します。 -
labels: ラベルのリスト。 -
maintenance: メンテナンスモードを入力するか、終了します。 -
update_labels: ラベルを更新します。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/host/HOST_NAME/daemons- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。
-
- 例
GET /api/host/HOST_NAME/daemons HTTP/1.1 Host: example.com
GET /api/host/HOST_NAME/daemons HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/host/HOST_NAME/devices- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。
-
- 例
GET /api/host/HOST_NAME/devices HTTP/1.1 Host: example.com
GET /api/host/HOST_NAME/devices HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/host/HOST_NAME/identify_device- 説明
- 指定された秒数の間デバイスのライトをオンにして、デバイスを識別します。
- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。 -
device:/dev/dm-0、ABC1234DEF567-1R1234_ABC8DE0Qなどのデバイス ID。 -
期間- デバイスの LED がフラッシュする秒数。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/host/HOST_NAME/inventory- 説明
- ホストのインベントリーを表示します。
- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。 クエリー:
-
refresh: 非同期の更新をトリガーする文字列の値。
-
-
- 例
GET /api/host/HOST_NAME/inventory HTTP/1.1 Host: example.com
GET /api/host/HOST_NAME/inventory HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/host/HOST_NAME/smart- パラメーター
-
HOST_NAMEは、ノード名に置き換えます。
-
- 例
GET /api/host/HOST_NAME/smart HTTP/1.1 Host: example.com
GET /api/host/HOST_NAME/smart HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.11. Logs リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の logs エンドポイントを使用してログ情報を表示するメソッド参照。
GET /api/logs/all- 説明
- すべてのログ設定を表示します。
- 例
GET /api/logs/all HTTP/1.1 Host: example.com
GET /api/logs/all HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.12. Ceph Manager モジュール リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の mgr/module エンドポイントを使用して Ceph Manager モジュールを管理するメソッド参照。
GET /api/mgr/module- 説明
- 管理モジュールのリストを表示します。
- 例
GET /api/mgr/module HTTP/1.1 Host: example.com
GET /api/mgr/module HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/mgr/module/MODULE_NAME- 説明
- 永続設定の値を取得します。
- パラメーター
-
MODULE_NAMEは Ceph Manager モジュール名に置き換えます。
-
- 例
GET /api/mgr/module/MODULE_NAME HTTP/1.1 Host: example.com
GET /api/mgr/module/MODULE_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/mgr/module/MODULE_NAME- 説明
- 永続設定の値を設定します。
- パラメーター
-
MODULE_NAMEは Ceph Manager モジュール名に置き換えます。 -
config: モジュールオプションの値。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/mgr/module/MODULE_NAME/disable- 説明
- 指定の Ceph Manager モジュールを無効にします。
- パラメーター
-
MODULE_NAMEは Ceph Manager モジュール名に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/mgr/module/MODULE_NAME/enable- 説明
- 指定の Ceph Manager モジュールを有効にします。
- パラメーター
-
MODULE_NAMEは Ceph Manager モジュール名に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/mgr/module/MODULE_NAME/options- 説明
- 指定の Ceph Manager モジュールのオプションを表示します。
- パラメーター
-
MODULE_NAMEは Ceph Manager モジュール名に置き換えます。
-
- 例
GET /api/mgr/module/MODULE_NAME/options HTTP/1.1 Host: example.com
GET /api/mgr/module/MODULE_NAME/options HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.13. Ceph Monitor リンクのコピーリンクがクリップボードにコピーされました!
Ceph Monitor の情報を表示する Ceph RESTful API の monitor エンドポイントを使用するメソッド参照。
GET /api/monitor- 説明
- Ceph Monitor の詳細を表示します。
- 例
GET /api/monitor HTTP/1.1 Host: example.com
GET /api/monitor HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.14. Ceph OSD リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の osd エンドポイントを使用して Ceph OSD を管理するメソッド参照。
GET /api/osd- 例
GET /api/osd HTTP/1.1 Host: example.com
GET /api/osd HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/osd- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/flags- 説明
- Ceph OSD フラグを表示します。
- 例
GET /api/osd/flags HTTP/1.1 Host: example.com
GET /api/osd/flags HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/osd/flags- 説明
- ストレージクラスター全体の Ceph OSD フラグを設定します。
- パラメーター
-
recovery_deletes、sortbitwise、およびpglog_hardlimitフラグの設定を解除することはできません。 purged_snapshotsフラグを設定できません。重要正常な操作には、以下の 4 つのフラグを追加する必要があります。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/flags/individual- 説明
- 個別の Ceph OSD フラグを表示します。
- 例
GET /api/osd/flags/individual HTTP/1.1 Host: example.com
GET /api/osd/flags/individual HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/osd/flags/individual- 説明
-
Ceph OSD の個別サブセットの
noout、noin、nodown、およびnoupフラグを更新します。 - 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/safe_to_delete- パラメーター
クエリー:
-
svc_ids: Ceph OSD サービス識別子で必要な文字列。
-
- 例
GET /api/osd/safe_to_delete?svc_ids=STRING HTTP/1.1 Host: example.com
GET /api/osd/safe_to_delete?svc_ids=STRING HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/safe_to_destroy- 説明
- Ceph OSD が破棄しても安全かどうかを確認します。
- パラメーター
クエリー:
-
ID: Ceph OSD サービス識別子の必要な文字列。
-
- 例
GET /api/osd/safe_to_destroy?ids=STRING HTTP/1.1 Host: example.com
GET /api/osd/safe_to_destroy?ids=STRING HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/osd/SVC_ID- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。 クエリー:
-
preserve_id: 文字列の値。 -
force: 文字列の値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/SVC_ID- 説明
- Ceph OSD に関する収集したデータを返します。
- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
GET /api/osd/SVC_ID HTTP/1.1 Host: example.com
GET /api/osd/SVC_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/osd/SVC_ID- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/osd/SVC_ID/destroy- 説明
Ceph OSD に破棄されているとマークします。Ceph OSD は、破棄される前にダウンとマークする必要があります。この操作は Ceph OSD 識別子をそのまま保持しますが、Cephx キー、設定キーデータ、および lockbox キーを削除します。
警告この操作により、データが永続的に読み取り不能になります。
- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/SVC_ID/devices- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
GET /api/osd/SVC_ID/devices HTTP/1.1 Host: example.com
GET /api/osd/SVC_ID/devices HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/SVC_ID/histogram- 説明
- Ceph OSD のヒストグラムデータを返します。
- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
GET /api/osd/SVC_ID/histogram HTTP/1.1 Host: example.com
GET /api/osd/SVC_ID/histogram HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/osd/SVC_ID/mark- 説明
Ceph OSD を
out、in、down、およびlostにマークします。注記Ceph OSD は、
lostにする前にdownとマークする必要があります。- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/osd/SVC_ID/purge- 説明
CRUSH マップから Ceph OSD を削除します。
注記Ceph OSD は、削除前に
downとマークする必要があります。- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/osd/SVC_ID/reweight- 説明
-
Ceph OSD の重みを一時的に変更します。Ceph OSD に
outとマークが付けられると、OSD の重みは0に設定されます。Ceph OSD のマークがinに戻ると、OSD の重みは1に設定されます。 - パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/osd/SVC_ID/scrub- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。 クエリー:
-
deep: ブール値です。trueまたはfalseになります。
-
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/osd/SVC_ID/smart- パラメーター
-
SVC_IDは、Ceph OSD サービス識別子の文字列値に置き換えます。
-
- 例
GET /api/osd/SVC_ID/smart HTTP/1.1 Host: example.com
GET /api/osd/SVC_ID/smart HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.15. Ceph Object Gateway リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の rgw エンドポイントを使用して Ceph Object Gateway を管理するメソッド参照。
GET /api/rgw/status- 説明
- Ceph Object Gateway のステータスを表示します。
- 例
GET /api/rgw/status HTTP/1.1 Host: example.com
GET /api/rgw/status HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/daemon- 説明
- Ceph Object Gateway デーモンを表示します。
- 例
GET /api/rgw/daemon HTTP/1.1 Host: example.com
GET /api/rgw/daemon HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/daemon/SVC_ID- パラメーター
-
SVC_IDは、サービス識別子を文字列値で置き換えます。
-
- 例
GET /api/rgw/daemon/SVC_ID HTTP/1.1 Host: example.com
GET /api/rgw/daemon/SVC_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/site- パラメーター
クエリー:
-
query: 文字列値。 -
daemon_name: デーモンの名前 (文字列値) を指定します。
-
- 例
GET /api/rgw/site HTTP/1.1 Host: example.com
GET /api/rgw/site HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
バケット管理
GET /api/rgw/bucket- パラメーター
クエリー:
-
stats: バケット統計のブール値。 -
daemon_name: デーモンの名前 (文字列値) を指定します。
-
- 例
GET /api/rgw/bucket HTTP/1.1 Host: example.com
GET /api/rgw/bucket HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/rgw/bucket- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/rgw/bucket/BUCKET- パラメーター
-
BUCKETは、バケット名 (文字列値) に置き換えます。 クエリー:
-
purge_objects: 文字列の値。 -
daemon_name: デーモンの名前 (文字列値) を指定します。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/bucket/BUCKET- パラメーター
-
BUCKETは、バケット名 (文字列値) に置き換えます。 クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。
-
-
- 例
GET /api/rgw/bucket/BUCKET HTTP/1.1 Host: example.com
GET /api/rgw/bucket/BUCKET HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/rgw/bucket/BUCKET- パラメーター
-
BUCKETは、バケット名 (文字列値) に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
ユーザー管理
GET /api/rgw/user- 説明
- Ceph Object Gateway ユーザーを表示します。
- パラメーター
クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。
-
- 例
GET /api/rgw/user HTTP/1.1 Host: example.com
GET /api/rgw/user HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/rgw/user- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/user/get_emails- パラメーター
クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。
-
- 例
GET /api/rgw/user/get_emails HTTP/1.1 Host: example.com
GET /api/rgw/user/get_emails HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/rgw/user/UID- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。 クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/user/UID- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。 クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。 -
stats: ユーザー統計のブール値。
-
-
- 例
GET /api/rgw/user/UID HTTP/1.1 Host: example.com
GET /api/rgw/user/UID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/rgw/user/UID- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/rgw/user/UID/capability- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。 クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。 -
type: 必須。文字列値。 -
perm: 必須。文字列値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/rgw/user/UID/capability- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/rgw/user/UID/key- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。 クエリー:
-
daemon_name: デーモンの名前 (文字列値) を指定します。 -
key_type: 文字列値。 -
subuser: 文字列値。 -
access_key: 文字列値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/rgw/user/UID/key- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/rgw/user/UID/quota- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
GET /api/rgw/user/UID/quota HTTP/1.1 Host: example.com
GET /api/rgw/user/UID/quota HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/rgw/user/UID/quota- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/rgw/user/UID/subuser- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/rgw/user/UID/subuser/SUBUSER- パラメーター
-
UIDを文字列としてユーザー ID に置き換えます。 -
SUBUSERを文字列としてサブユーザー名に置き換えます。 クエリー:
-
purge_keys: 鍵を消去しないようにfalseに設定します。これは S3 サブユーザーでのみ機能します。 -
daemon_name: デーモンの名前 (文字列値) を指定します。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.16. ロールを操作する REST API リンクのコピーリンクがクリップボードにコピーされました!
radosgw-admin role コマンドの他に、REST API を使用してロールを操作できます。
REST 管理 API を呼び出すには、admin キャップを持つユーザーを作成します。
例
radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create radosgw-admin caps add --uid="TESTER" --caps="roles=*"
[root@host01 ~]# radosgw-admin --uid TESTER --display-name "TestUser" --access_key TESTER --secret test123 user create
[root@host01 ~]# radosgw-admin caps add --uid="TESTER" --caps="roles=*"
ロールを作成します。
構文
POST “<hostname>?Action=CreateRole&RoleName=ROLE_NAME&Path=PATH_TO_FILE&AssumeRolePolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=CreateRole&RoleName=ROLE_NAME&Path=PATH_TO_FILE&AssumeRolePolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=CreateRole&RoleName=S3Access&Path=/application_abc/component_xyz/&AssumeRolePolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER"]},"Action":["sts:AssumeRole"]}]}”POST “<hostname>?Action=CreateRole&RoleName=S3Access&Path=/application_abc/component_xyz/&AssumeRolePolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER"]},"Action":["sts:AssumeRole"]}]}”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールを取得します。
構文
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME”
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=GetRole&RoleName=S3Access”
POST “<hostname>?Action=GetRole&RoleName=S3Access”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールを一覧表示します。
構文
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME&PathPrefix=PATH_PREFIX”
POST “<hostname>?Action=GetRole&RoleName=ROLE_NAME&PathPrefix=PATH_PREFIX”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要求の例
POST “<hostname>?Action=ListRoles&RoleName=S3Access&PathPrefix=/application”
POST “<hostname>?Action=ListRoles&RoleName=S3Access&PathPrefix=/application”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 応答の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow assume ロールポリシードキュメントを更新します。
構文
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=ROLE_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=ROLE_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=S3Access&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER2"]},"Action":["sts:AssumeRole"]}]}”POST “<hostname>?Action=UpdateAssumeRolePolicy&RoleName=S3Access&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Principal":{"AWS":["arn:aws:iam:::user/TESTER2"]},"Action":["sts:AssumeRole"]}]}”Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールに割り当てられたポリシーを更新します。
構文
POST “<hostname>?Action=PutRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”
POST “<hostname>?Action=PutRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME&PolicyDocument=TRUST_RELATIONSHIP_POLICY_DOCUMENT”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=PutRolePolicy&RoleName=S3Access&PolicyName=Policy1&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Action":["s3:CreateBucket"],"Resource":"arn:aws:s3:::example_bucket"}]}”POST “<hostname>?Action=PutRolePolicy&RoleName=S3Access&PolicyName=Policy1&PolicyDocument={"Version":"2022-06-17","Statement":[{"Effect":"Allow","Action":["s3:CreateBucket"],"Resource":"arn:aws:s3:::example_bucket"}]}”Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールに割り当てられているパーミッションポリシー名を一覧表示します。
構文
POST “<hostname>?Action=ListRolePolicies&RoleName=ROLE_NAME”
POST “<hostname>?Action=ListRolePolicies&RoleName=ROLE_NAME”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=ListRolePolicies&RoleName=S3Access” <PolicyNames> <member>Policy1</member> </PolicyNames>
POST “<hostname>?Action=ListRolePolicies&RoleName=S3Access” <PolicyNames> <member>Policy1</member> </PolicyNames>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールに割り当てられたパーミッションポリシーを取得します。
構文
POST “<hostname>?Action=GetRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME”
POST “<hostname>?Action=GetRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME”Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールに割り当てられたポリシーを削除します。
構文
POST “hostname>?Action=DeleteRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME“
POST “hostname>?Action=DeleteRolePolicy&RoleName=ROLE_NAME&PolicyName=POLICY_NAME“Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=DeleteRolePolicy&RoleName=S3Access&PolicyName=Policy1”
POST “<hostname>?Action=DeleteRolePolicy&RoleName=S3Access&PolicyName=Policy1”Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロールを削除します。
注記ロールは、パーミッションポリシーが割り当てられていない場合にのみ削除できます。
構文
POST “<hostname>?Action=DeleteRole&RoleName=ROLE_NAME"
POST “<hostname>?Action=DeleteRole&RoleName=ROLE_NAME"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例
POST “<hostname>?Action=DeleteRole&RoleName=S3Access"
POST “<hostname>?Action=DeleteRole&RoleName=S3Access"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
A.17. NFS Ganesha リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の nfs-ganesha エンドポイントを使用して Ceph NFS ゲートウェイを管理するメソッド参照。
GET /api/nfs-ganesha/daemon- 説明
- NFS Ganesha デーモンに関する情報を表示します。
- 例
GET /api/nfs-ganesha/daemon HTTP/1.1 Host: example.com
GET /api/nfs-ganesha/daemon HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/nfs-ganesha/export- 説明
- すべての NFS Ganesha エクスポートを表示します。
- 例
GET /api/nfs-ganesha/export HTTP/1.1 Host: example.com
GET /api/nfs-ganesha/export HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/nfs-ganesha/export- 説明
- NFS Ganesha エクスポートを新たに作成します。
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/nfs-ganesha/export/CLUSTER_ID/EXPORT_ID- 説明
- NFS Ganesha エクスポートを削除します。
- パラメーター
-
CLUSTER_IDはストレージクラスター識別子の文字列に置き換えます。 -
EXPORT_IDは、エクスポート ID を整数に置き換えます。 クエリー:
-
reload_daemons: NFS Ganesha デーモン設定の再読み込みをトリガーするブール値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/nfs-ganesha/export/CLUSTER_ID/EXPORT_ID- 説明
- NFS Ganesha エクスポート情報を表示します。
- パラメーター
-
CLUSTER_IDはストレージクラスター識別子の文字列に置き換えます。 -
EXPORT_IDは、エクスポート ID を整数に置き換えます。
-
- 例
GET /api/nfs-ganesha/export/CLUSTER_ID/EXPORT_ID HTTP/1.1 Host: example.com
GET /api/nfs-ganesha/export/CLUSTER_ID/EXPORT_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/nfs-ganesha/export/CLUSTER_ID/EXPORT_ID- 説明
- NFS Ganesha エクスポート情報を更新します。
- パラメーター
-
CLUSTER_IDはストレージクラスター識別子の文字列に置き換えます。 -
EXPORT_IDは、エクスポート ID を整数に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/nfs-ganesha/status- 説明
- NFS Ganesha 管理機能のステータス情報を表示します。
- 例
GET /api/nfs-ganesha/status HTTP/1.1 Host: example.com
GET /api/nfs-ganesha/status HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.18. Ceph Orchestrator リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の orchestrator エンドポイントを使用して Ceph Orchestrator ステータスを表示するメソッド参照。
GET /api/orchestrator/status- 説明
- Ceph Orchestrator ステータスを表示します。
- 例
GET /api/orchestrator/status HTTP/1.1 Host: example.com
GET /api/orchestrator/status HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.19. Pools リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の pool エンドポイントを使用してストレージプールを管理するメソッド参照。
GET /api/pool- 説明
- プールのリストを表示します。
- パラメーター
クエリー:
-
attrs: プール属性の文字列値。 -
stats: プール統計のブール値。
-
- 例
GET /api/pool HTTP/1.1 Host: example.com
GET /api/pool HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/pool- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/pool/POOL_NAME- パラメーター
-
POOL_NAMEをプールの名前に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/pool/POOL_NAME- パラメーター
-
POOL_NAMEをプールの名前に置き換えます。 クエリー:
-
attrs: プール属性の文字列値。 -
stats: プール統計のブール値。
-
-
- 例
GET /api/pool/POOL_NAME HTTP/1.1 Host: example.com
GET /api/pool/POOL_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/pool/POOL_NAME- パラメーター
-
POOL_NAMEをプールの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/pool/POOL_NAME/configuration- パラメーター
-
POOL_NAMEをプールの名前に置き換えます。
-
- 例
GET /api/pool/POOL_NAME/configuration HTTP/1.1 Host: example.com
GET /api/pool/POOL_NAME/configuration HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.20. Prometheus リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の prometheus エンドポイントを使用して Prometheus を管理するためのメソッド参照。
GET /api/prometheus- 例
GET /api/prometheus/rules HTTP/1.1 Host: example.com
GET /api/prometheus/rules HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/prometheus/rules- 例
GET /api/prometheus/rules HTTP/1.1 Host: example.com
GET /api/prometheus/rules HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/prometheus/silence- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/prometheus/silence/S_ID- パラメーター
-
S_IDを文字列値に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/prometheus/silences- 例
GET /api/prometheus/silences HTTP/1.1 Host: example.com
GET /api/prometheus/silences HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/prometheus/notifications- 例
GET /api/prometheus/notifications HTTP/1.1 Host: example.com
GET /api/prometheus/notifications HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.21. RADOS ブロックデバイス リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の block エンドポイントを使用して RADOS ブロックデバイス (RBD) を管理するためのメソッド参照。この参照には、利用可能なすべての RBD 機能エンドポイントが含まれます。以下に例を示します。
RBD イメージ
GET /api/block/image- 説明
- RBD イメージを表示します。
- パラメーター
クエリー:
-
pool_name: プール名 (文字列)
-
- 例
GET /api/block/image HTTP/1.1 Host: example.com
GET /api/block/image HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/block/image/clone_format_version- 説明
- RBD クローン形式のバージョンを返します。
- 例
GET /api/block/image/clone_format_version HTTP/1.1 Host: example.com
GET /api/block/image/clone_format_version HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/block/image/default_features- 例
GET /api/block/image/default_features HTTP/1.1 Host: example.com
GET /api/block/image/default_features HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/block/image/default_features- 例
GET /api/block/image/default_features HTTP/1.1 Host: example.com
GET /api/block/image/default_features HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/block/image/IMAGE_SPEC- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/block/image/IMAGE_SPEC- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- 例
GET /api/block/image/IMAGE_SPEC HTTP/1.1 Host: example.com
GET /api/block/image/IMAGE_SPEC HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/block/image/IMAGE_SPEC- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/IMAGE_SPEC/copy- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/IMAGE_SPEC/flatten- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/IMAGE_SPEC/move_trash- 説明
- イメージをゴミ箱に移動します。クローンによってアクティブに使用されているイメージは、ゴミ箱に移動して、後で削除することができます。
- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ミラーリング
GET /api/block/mirroring/site_name- 説明
- RBD ミラーリングサイト名を表示します。
- 例
GET /api/block/mirroring/site_name HTTP/1.1 Host: example.com
GET /api/block/mirroring/site_name HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/block/mirroring/site_name- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ミラーリングプールブートストラップ
POST /api/block/mirroring/pool/POOL_NAME/bootstrap/peer- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/mirroring/pool/POOL_NAME/bootstrap/token- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ミラーリングプールモード
GET /api/block/mirroring/pool/POOL_NAME- 説明
- RBD ミラーリングの概要を表示します。
- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
GET /api/block/mirroring/pool/POOL_NAME HTTP/1.1 Host: example.com
GET /api/block/mirroring/pool/POOL_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/block/mirroring/pool/POOL_NAME- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ミラーリングプールピア
GET /api/block/mirroring/pool/POOL_NAME/peer- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
GET /api/block/mirroring/pool/POOL_NAME/peer HTTP/1.1 Host: example.com
GET /api/block/mirroring/pool/POOL_NAME/peer HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/mirroring/pool/POOL_NAME/peer- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/block/mirroring/pool/POOL_NAME/peer/PEER_UUID- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。 -
PEER_UUIDは、文字列としてピアの UUID に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/block/mirroring/pool/POOL_NAME/peer/PEER_UUID- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。 -
PEER_UUIDは、文字列としてピアの UUID に置き換えます。
-
- 例
GET /api/block/mirroring/pool/POOL_NAME/peer/PEER_UUID HTTP/1.1 Host: example.com
GET /api/block/mirroring/pool/POOL_NAME/peer/PEER_UUID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/block/mirroring/pool/POOL_NAME/peer/PEER_UUID- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。 -
PEER_UUIDは、文字列としてピアの UUID に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ミラーリングの概要
GET /api/block/mirroring/summary- 説明
- RBD ミラーリングの概要を表示します。
- 例
GET /api/block/mirroring/summary HTTP/1.1 Host: example.com
GET /api/block/mirroring/summary HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD 名前空間
GET /api/block/pool/POOL_NAME/namespace- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
GET /api/block/pool/POOL_NAME/namespace HTTP/1.1 Host: example.com
GET /api/block/pool/POOL_NAME/namespace HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/pool/POOL_NAME/namespace- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/block/pool/POOL_NAME/namespace/NAMESPACE- パラメーター
-
POOL_NAMEを文字列としてプールの名前に置き換えます。 -
NAMESPACEを文字列として namespace に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD スナップショット
POST /api/block/image/IMAGE_SPEC/snap- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/block/image/IMAGE_SPEC/snap/SNAPSHOT_NAME- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。 -
SNAPSHOT_NAMEは、スナップショットの名前を文字列値として置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/block/image/IMAGE_SPEC/snap/SNAPSHOT_NAME- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。 -
SNAPSHOT_NAMEは、スナップショットの名前を文字列値として置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/IMAGE_SPEC/snap/SNAPSHOT_NAME/clone- 説明
- スナップショットをイメージにクローンします。
- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。 -
SNAPSHOT_NAMEは、スナップショットの名前を文字列値として置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/IMAGE_SPEC/snap/SNAPSHOT_NAME/rollback- パラメーター
-
IMAGE_SPECを文字列の値としてイメージ名に置き換えます。 -
SNAPSHOT_NAMEは、スナップショットの名前を文字列値として置き換えます。
-
- ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
RBD ゴミ箱
GET /api/block/image/trash- 説明
- すべての RBD ゴミ箱エントリー、またはプール名ごとの RBD ゴミ箱の詳細を表示します。
- パラメーター
クエリー:
-
pool_name: プールの名前 (文字列値)
-
- 例
GET /api/block/image/trash HTTP/1.1 Host: example.com
GET /api/block/image/trash HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/trash/purge- 説明
- ゴミ箱から期限切れのイメージをすべて削除します。
- パラメーター
クエリー:
-
pool_name: プールの名前 (文字列値)
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/block/image/trash/IMAGE_ID_SPEC- 説明
-
ゴミ箱からイメージを削除します。イメージの延期時間が経過していない場合は、
forceを使用しない限り削除できません。クローン別にアクティブに使用中のイメージや、スナップショットが含まれているため、削除できません。 - パラメーター
-
IMAGE_ID_SPECは、イメージ名を文字列値として置き換えます。 クエリー:
-
force: ごみ箱からイメージの削除を強制するブール値。
-
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/block/image/trash/IMAGE_ID_SPEC/restore- 説明
- ゴミ箱からイメージを復元します。
- パラメーター
-
IMAGE_ID_SPECは、イメージ名を文字列値として置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.22. パフォーマンスカウンター リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の perf_counters エンドポイントを使用するメソッド参照。さまざまな Ceph パフォーマンスカウンターを表示します。この参照には、利用可能なすべてのパフォーマンスカウンターが含まれます。以下に例を示します。
- Ceph Metadata Server (MDS)
- Ceph Manager
- Ceph Monitor
- Ceph OSD
- Ceph Object Gateway
- Ceph RADOS ブロックデバイス (RBD) ミラーリング
GET /api/perf_counters- 説明
- パフォーマンスカウンターを表示します。
- 例
GET /api/perf_counters HTTP/1.1 Host: example.com
GET /api/perf_counters HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph Metadata Server
GET /api/perf_counters/mds/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/mds/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/mds/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph Manager
GET /api/perf_counters/mgr/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/mgr/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/mgr/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph Monitor
GET /api/perf_counters/mon/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/mon/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/mon/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph OSD
GET /api/perf_counters/osd/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/osd/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/osd/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph RADOS ブロックデバイス (RBD) ミラーリング
GET /api/perf_counters/rbd-mirror/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/rbd-mirror/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/rbd-mirror/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
Ceph Object Gateway
GET /api/perf_counters/rgw/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/rgw/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/rgw/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
TCMU ランナー
GET /api/perf_counters/tcmu-runner/SERVICE_ID- パラメーター
-
SERVICE_IDを文字列として必要なサービス識別子に置き換えます。
-
- 例
GET /api/perf_counters/tcmu-runner/SERVICE_ID HTTP/1.1 Host: example.com
GET /api/perf_counters/tcmu-runner/SERVICE_ID HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.23. ロール リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の role エンドポイントを使用して Ceph のさまざまなユーザーロールを管理するためのメソッド参照。
GET /api/role- 説明
- ロールのリストを表示します。
- 例
GET /api/role HTTP/1.1 Host: example.com
GET /api/role HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/role- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/role/NAME- パラメーター
-
NAMEを文字列としてロール名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/role/NAME- パラメーター
-
NAMEを文字列としてロール名に置き換えます。
-
- 例
GET /api/role/NAME HTTP/1.1 Host: example.com
GET /api/role/NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/role/NAME- パラメーター
-
NAMEを文字列としてロール名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/role/NAME/clone- パラメーター
-
NAMEを文字列としてロール名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.24. サービス リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の service エンドポイントを使用してさまざまな Ceph サービスを管理するためのメソッド参照。
GET /api/service- パラメーター
クエリー:
-
service_name: 文字列としてサービス名。
-
- 例
GET /api/service HTTP/1.1 Host: example.com
GET /api/service HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/service- パラメーター
-
service_spec: サービスの JSON ファイルとしての指定。 -
service_name: サービスの名前
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/service/known_types- 説明
- 既知のサービスタイプのリストを表示します。
- 例
GET /api/service/known_types HTTP/1.1 Host: example.com
GET /api/service/known_types HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/service/SERVICE_NAME- パラメーター
-
SERVICE_NAMEは、サービス名を文字列として置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/service/SERVICE_NAME- パラメーター
-
SERVICE_NAMEは、サービス名を文字列として置き換えます。
-
- 例
GET /api/service/SERVICE_NAME HTTP/1.1 Host: example.com
GET /api/service/SERVICE_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/service/SERVICE_NAME/daemons- パラメーター
-
SERVICE_NAMEは、サービス名を文字列として置き換えます。
-
- 例
GET /api/service/SERVICE_NAME/daemons HTTP/1.1 Host: example.com
GET /api/service/SERVICE_NAME/daemons HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.25. Settings リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API n の settings エンドポイントを使用してさまざまな Ceph 設定を管理するメソッド参照。
GET /api/settings- 説明
- 利用可能なオプションのリストを表示します。
- パラメーター
クエリー:
-
names: オプション名のコンマ区切りリスト
-
- 例
GET /api/settings HTTP/1.1 Host: example.com
GET /api/settings HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/settings- ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/settings/NAME- パラメーター
-
NAMEを文字列としてオプション名に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/settings/NAME- 説明
- 指定オプションを表示します。
- パラメーター
-
NAMEを文字列としてオプション名に置き換えます。
-
- 例
GET /api/settings/NAME HTTP/1.1 Host: example.com
GET /api/settings/NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/settings/NAME- パラメーター
-
NAMEを文字列としてオプション名に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.26. Ceph タスク リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の task エンドポイントを使用して Ceph タスクを表示するためのメソッド参照。
GET /api/task- 説明
- Ceph タスクを表示します。
- パラメーター
クエリー:
-
名前: タスクの名前。
-
- 例
GET /api/task HTTP/1.1 Host: example.com
GET /api/task HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.27. テレメトリー リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の telemetry エンドポイントを使用して telemetry Ceph Manager モジュールのデータを管理するためのメソッド参照。
PUT /api/telemetry- 説明
- telemetry モジュールで収集したデータの送信を有効または無効にします。
- パラメーター
-
enable: ブール値です。 -
license_name: 文字列の値 (例:sharing-1-0) です。ユーザーが認識し、テレメトリーデータを共有するライセンスを受け入れるようにしてください。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/telemetry/report- 説明
- Ceph およびデバイスのレポートデータを表示します。
- 例
GET /api/telemetry/report HTTP/1.1 Host: example.com
GET /api/telemetry/report HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
A.28. Ceph ユーザー リンクのコピーリンクがクリップボードにコピーされました!
Ceph RESTful API の user エンドポイントを使用して Ceph ユーザーの詳細を表示し、Ceph ユーザーパスワードを管理する方法の参照です。
GET /api/user- 説明
- ユーザーのリストを表示します。
- 例
GET /api/user HTTP/1.1 Host: example.com
GET /api/user HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/user- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
DELETE /api/user/USER_NAME- パラメーター
-
USER_NAMEは、文字列としてユーザーの名前に置き換えます。
-
- ステータスコード
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 204 No Content – Resource deleted.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
GET /api/user/USER_NAME- パラメーター
-
USER_NAMEは、文字列としてユーザーの名前に置き換えます。
-
- 例
GET /api/user/USER_NAME HTTP/1.1 Host: example.com
GET /api/user/USER_NAME HTTP/1.1 Host: example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
PUT /api/user/USER_NAME- パラメーター
-
USER_NAMEは、文字列としてユーザーの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 200 OK – Okay.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/user/USER_NAME/change_password- パラメーター
-
USER_NAMEは、文字列としてユーザーの名前に置き換えます。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
POST /api/user/validate_password- 説明
- パスワードを確認して、パスワードポリシーが満たされているかどうかを確認します。
- パラメーター
-
password- 検証するパスワード。 -
ユーザー名: 任意。ユーザーの名前。 -
old_password: 任意。古いパスワード。
-
- 例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ステータスコード
- 201 Created – Resource created.
- 202 Accepted – Operation is still executing.タスクキューを確認してください。
- 400 Bad Request – Operation exception.詳細は、レスポンスボディーを確認してください。
- 401 Unauthorized – Unauthenticated access.最初にログインしてください。
- 403 Forbidden – Unauthorized access.パーミッションを確認してください。
- 500 Internal Server Error – Unexpected error.スタックトレースのレスポンスボディーを確認してください。
付録B S3 の一般的なリクエストヘッダー リンクのコピーリンクがクリップボードにコピーされました!
以下の表には、有効な一般的なリクエストヘッダーとその説明をまとめています。
| リクエストヘッダー | 説明 |
|---|---|
|
| リクエストボディーの長さ。 |
|
| 要求の日時と日付 (UTC 単位)。 |
|
| ホストサーバーの名前。 |
|
| 承認トークン。 |
付録C S3 の一般的なレスポンスステータスコード リンクのコピーリンクがクリップボードにコピーされました!
以下の表は、有効な一般的な HTTP レスポンスステータスと対応するコードを示しています。
| HTTP ステータス | レスポンスコード |
|---|---|
|
| Continue |
|
| Success |
|
| Created |
|
| Accepted |
|
| NoContent |
|
| Partial content |
|
| NotModified |
|
| InvalidArgument |
|
| InvalidDigest |
|
| BadDigest |
|
| InvalidBucketName |
|
| InvalidObjectName |
|
| UnresolvableGrantByEmailAddress |
|
| InvalidPart |
|
| InvalidPartOrder |
|
| RequestTimeout |
|
| EntityTooLarge |
|
| AccessDenied |
|
| UserSuspended |
|
| RequestTimeTooSkewed |
|
| NoSuchKey |
|
| NoSuchBucket |
|
| NoSuchUpload |
|
| MethodNotAllowed |
|
| RequestTimeout |
|
| BucketAlreadyExists |
|
| BucketNotEmpty |
|
| MissingContentLength |
|
| PreconditionFailed |
|
| InvalidRange |
|
| UnprocessableEntity |
|
| InternalError |
付録D S3 のサポート対象動詞とサポート対象外の動詞 リンクのコピーリンクがクリップボードにコピーされました!
ここでは、サポート対象およびサポート対象外の S3 動詞をリストします。
| Action | API |
|---|---|
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| STS |
|
| STS |
|
| STS |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| S3 拡張機能 |
|
| SNS |
|
| SNS |
|
| SNS |
|
| SNS |
| Action | API |
|---|---|
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| S3 |
|
| STS |
|
| STS |
|
| STS |
|
| STS |
|
| STS |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
|
| IAM |
付録E S3 サポートされないヘッダーフィールド リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 型 |
|---|---|
| x-amz-security-token | リクエスト |
| Server | レスポンス |
| x-amz-delete-marker | レスポンス |
| x-amz-id-2 | レスポンス |
| x-amz-request-id | レスポンス |
| x-amz-version-id | レスポンス |
付録F Swift リクエストヘッダー リンクのコピーリンクがクリップボードにコピーされました!
| 名前 | 説明 | 型 | 必須 |
|---|---|---|---|
|
| 認証するキーの Ceph Object Gateway のユーザー名。 | String | はい |
|
| Ceph Object Gateway のユーザー名に関連付けられたキー。 | String | はい |
付録G Swift レスポンスヘッダー リンクのコピーリンクがクリップボードにコピーされました!
サーバーからのレスポンスには、X-Auth-Token の値が含まれている必要があります。レスポンスには、API のドキュメント全体で他のリクエストに指定される API_VERSION/ACCOUNT 接頭辞を提供する X-Storage-Url も含まれる可能性があります。
| 名前 | 説明 | 型 |
|---|---|---|
|
|
要求に指定された | String |
|
|
ユーザーの URL および | String |
付録H Secure Token Service API の使用例 リンクのコピーリンクがクリップボードにコピーされました!
これらの例は、Python の boto3 モジュールを使用して、Ceph Object Gateway の Secure Token Service (STS) の実装と対話しています。これらの例では、TESTER2 は TESTER1 によって作成されたロールを想定しています。これは、ロールに割り当てられたパーミッションポリシーに基づいて TESTER1 が所有する S3 リソースにアクセスするためです。
AssumeRole のサンプルはロールを作成し、ポリシーをロールに割り当てます。次に、一時認証情報を取得し、それらの一時認証情報を使用して S3 リソースにアクセスするロールを想定します。
AssumeRoleWithWebIdentity の例は、OpenID Connect ID プロバイダーである Keycloak を使用して外部アプリケーションを使用してユーザーを認証し、ロールのアクセス許可ポリシーに従って一時的な認証情報を取得して S3 リソースにアクセスするロールを引き受けます。
AssumeRole の例
AssumeRoleWithWebIdentity の例
関連情報
-
Python の
botoモジュールの使用に関する詳細は、Red Hat Ceph Storage Object Gateway 設定および管理ガイド の S3 アクセスのテスト セクションを参照してください。