目次
動作環境
PHP: 7.0.2
OS: Centos 7
コンテナを作成する
前回の記事で、オブジェクトストレージを操作するための基本設定は完了しました。
今回は、オブジェクトを設置するためのコンテナを作成します。
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にアクセスすると、下記画像のように配列形式で表示されます。
