https://identity.tyo1.conoha.io/v2.0
目次
動作環境
PHP: 7.0.2
OS: Centos 7
Conohaのおぶじぇくとすとれーじ?
まず利用するにあたって、オブジェクトストレージってなんぞ?というところで、下記URLを参考
https://www.conoha.jp/guide/objectstorage.php
なんとなくふわっと理解した感じですと、オブジェクトストレージは、下記のファイルを保存するのに適していると
- 画像ファイル
- 動画ファイル
- バックアップファイル
- ログファイルのアーカイブ
- 仮想マシンイメージ
画像サーバーとか、動画配信サービスとかに向いてるのかな?
早速使ってみます。
基本設定
最初にざっと、利用ガイドを流し読みをする。
https://www.conoha.jp/guide/objectstoragerestapi.php
Config.phpを作成
まずは、「config.php」を作成する。
<?php /** * ConoHaコントロールパネルで表示される情報を設定してください。 * * @link https://www.conoha.jp/blog/tech/3429.html */ // ユーザ名 define('USERNAME', ''); // パスワード define('PASSWORD', ''); // 認証トークン(token-get.phpで取得する) define('AUTH_TOKEN', ''); // テナント名 define('TENANT_NAME', ''); // テナントID define('TENANT_ID', ''); // API Auth URL define('AUTH_URL', 'https://identity.tyo1.conoha.io/v2.0'); // オブジェクトストレージエンドポイントURL define('ENDPOINT_URL', 'https://objectstore-r1nd1001.cnode.jp/v1/nc_' . TENANT_ID); //コンテナ名 define('MAIN_CONTENAR', 'test-conoha');
Config.phpの設定値を埋める
「config.php」の設定を入力するために、Conohaのコントローラーパネルにログインする。
サイドメニューの「API」をクリックする。
■ユーザ情報
APIユーザーの「ユーザー名」をconfig.phpの「USERNAME」に設定。
同様に「パスワード」をconfig.phpの「PASSWORD」に設定。
■テナント情報
ユーザー情報と同様に、APIページの「テナント情報」を設定する。
「テナントID」をconfig.phpの「TENANT_ID」に設定。
「テナント名」をconfig.phpの「TENANT_NAME」に設定。
トークンを発行する
config.phpにトークンを設定する為の「AUTH_TOKEN」という項目があります。
これは、コントロールパネルから取得ができず、トークンを取得するためのシステムを作る必要があります。
<?php /** * ConoHaオブジェクトストレージに接続する認証トークンを取得するプログラム * * @link https://www.conoha.jp/blog/tech/3429.html */ require_once 'config.php'; // cURLの初期化 $curl = curl_init(); // HTTPヘッダー $headers = array( // Acceptヘッダーでレスポンスの形式を指定できる // application/jsonの他にapplication/xmlやtext/xmlなど 'Content-Type: application/json' ); // POSTデータの準備 // アカウント名、テナント名、パスワードは環境に合わせて変更する。 $data = array( 'auth' => array( 'tenantName' => TENANT_NAME, 'passwordCredentials' => array( 'username' => USERNAME, 'password' => PASSWORD ) ) ); $postdata = json_encode($data); // URL $url = AUTH_URL . '/tokens'; // cURLのオプション $options = array( // HTTPヘッダーの設定 CURLOPT_HTTPHEADER => $headers, // URL CURLOPT_URL => $url, // POSTリクエストを実行する CURLOPT_POST => true, // POSTデータのセット CURLOPT_POSTFIELDS => $postdata, // curl_exec()の返り値で本文を受け取る CURLOPT_RETURNTRANSFER => true, ); curl_setopt_array($curl, $options); // HTTPリクエストを実行 // レスポンスはJSON形式の文字列 $body = curl_exec($curl); if(curl_errno($curl)) { $msg = sprintf('cURL error: %s', curl_error($curl)); throw new RuntimeException($msg); } // HTTPステータスコードを取得します。 // 認証に成功すると200、失敗すると401が返ってきます。 $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if(curl_errno($curl) OR $status_code != 200) { $msg = sprintf( 'Authentication failed. The auth server returned status code(%d).', $status_code ); throw new RuntimeException($msg); } // json_decode()は、JSON文字列をPHPの汎用オブジェクト(stdClass)に変換する関数 $authinfo = json_decode($body); // トークンはこれで取得できます。 // $authinfoには、他にもトークンの有効期限、テナントの情報、サービスカタログなどが含まれている echo "token: " . $authinfo->access->token->id . "\n"; // オブジェクトストレージのエンドポイントURLも取得できる // これはコントロールパネルのAPI情報から確認できるURLと同じ foreach($authinfo->access->serviceCatalog as $catalog) { if($catalog->type == 'object-store') { $endpoint = array_shift($catalog->endpoints); echo "endpoint url: " . $endpoint->publicURL . "\n"; } }
ファイルをサーバーに設置したら、ブラウザで「token-get.php」にアクセスする。
例
https://www.kabanoki.net/token-get.php
そうすると、下記のようなページが表示されるので、「token」の部分の値を「config.php」の「AUTH_TOKEN」に設定する
設定完了
基本設定は、これで終わりです。
次回は、オブジェクトストレージにファイルを設置したいと思います。
関連記事
https://www.kabanoki.net/1342
https://www.kabanoki.net/1404