忘れないように記録しとこ

カバの樹

ConohaのオブジェクトストレージをREST APIで操作する part2 (コンテナ作成+ コンテナ確認)

2017年3月28日

動作環境

PHP: 7.0.2
OS: Centos 7

 

コンテナを作成する

前回の記事で、オブジェクトストレージを操作するための基本設定は完了しました。

 

https://www.kabanoki.net/1326

 

今回は、オブジェクトを設置するためのコンテナを作成します。

container-create.phpを作成し、以下の内容を記述します。

 


<?php

/**
 * ConoHaオブジェクトストレージにコンテナを作成するサンプル
 *
 * @link https://www.conoha.jp/blog/tech/3429.html
 */
require_once 'config.php';
// cURLの初期化
$curl = curl_init();
// HTTPヘッダー
$headers = array(
 'X-Auth-Token: ' . AUTH_TOKEN,
 'Content-Length: 0',
 'Accept: application/json'
);

// リクエストURL
// /(スラッシュ)区切りの最後のフィールドがコンテナ名になる
$url = ENDPOINT_URL . '/' .MAIN_CONTENAR;
// cURLのオプション
$options = array(
 // コンテナを作成する場合はPUTメソッドを使う
 CURLOPT_PUT => true,
 
 // URLの設定
 CURLOPT_URL => $url,
 // リクエスト/レスポンスが見やすいように冗長表示する
 CURLOPT_VERBOSE => true,
 
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_HTTPHEADER => $headers,
);
curl_setopt_array($curl, $options);
// HTTPリクエストを実行
// レスポンスには何も含まれていません。
$body = curl_exec($curl);
if(curl_errno($curl)) {
 $msg = sprintf('cURL error: %s', curl_error($curl));
 throw new RuntimeException($msg);
}
// HTTPステータスコードを取得します。
// 以下のようなステータスコードが返ってきます。
// 
// 201 Created 正常にコンテナが作成された
// 202 Accepted リクエストが受け付けられた(すでに同じ名前のコンテナがあった場合など)
// 401 Unauthorize 認証失敗(トークンが正しくない)
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
echo "status code: " . $status_code . "\n";

ブラウザでcontainer-create.php にアクセスをする。
正常にコンテナが作成された場合は、下記画像のように「status code: 201」が表示されます。

 

コンテナを確認する

コンテナがストレージ内に作成できているのであれば、一覧として取得できるはず。
container-list.phpを使って確認してみます。

<?php
/**
 * ConoHaオブジェクトストレージのコンテナ一覧を取得するサンプル
 *
 * @link https://www.conoha.jp/blog/tech/3429.html
 */
require_once 'config.php';
// cURLの初期化
$curl = curl_init();
// HTTPヘッダー
$headers = array(
 // X-Auth-Tokenヘッダーでトークンを指定します
 'X-Auth-Token: ' . AUTH_TOKEN,
 
 // Acceptヘッダーでレスポンスの形式を指定できる
 // application/jsonの他にapplication/xmlやtext/xmlなど
 'Accept: application/json'
);
// リクエストURL
$url = ENDPOINT_URL;
// cURLのオプション
$options = array(
 // URLの設定
 CURLOPT_URL => $url,
 
 CURLOPT_RETURNTRANSFER => true,
 CURLOPT_HTTPHEADER => $headers,
);
curl_setopt_array($curl, $options);
// HTTPリクエストを実行
// レスポンスには何も含まれていません。
$body = curl_exec($curl);
if(curl_errno($curl)) {
 $msg = sprintf('cURL error: %s', curl_error($curl));
 throw new RuntimeException($msg);
}
// 結果を表示します。
echo $body . "\n";

ブラウザでcontainer-list.phpにアクセスすると、下記画像のように配列形式で表示されます。

 

 

 

関連記事

https://www.kabanoki.net/1326

https://www.kabanoki.net/1404

  • B!