目次
動作環境
PHP: 7.0.2
OS: Centos 7
前回作成したコンテナにオブジェクトを設置する
前回から随分期間が経ってしまい申し訳ありません。
https://www.kabanoki.net/1342?preview_id=1342
今回は、コンテナにオブジェクトを設置するところをご紹介します。
コンテナにオブジェクトをアップロードする
公式のドキュメントを参考に進めます。
https://www.conoha.jp/guide/objectstoragerestapi.php
まず object-upload.php というファイルを作成します。
/** * ConoHaオブジェクトストレージにオブジェクトをアップロードするサンプル * * @link https://www.conoha.jp/blog/tech/3429.html */ require_once 'config.php'; // cURLの初期化 $curl = curl_init(); // アップロードするデータを作成 $content = 'このはちゃん清楚かわいい'; $fp = tmpfile(); fwrite($fp, $content, strlen($content)); fseek($fp, 0, SEEK_SET); // HTTPヘッダー $headers = array( // X-Auth-Tokenヘッダーでトークンを指定します 'X-Auth-Token: ' . AUTH_TOKEN, // Content-Typeヘッダーでアップロードするオブジェクトの形式を指定します。 'Content-Type: text/plain; charset=utf-8' ); // リクエストURL // /(スラッシュ)区切りの最後のフィールドがオブジェクト名になる $url = ENDPOINT_URL . '/'.MAIN_CONTENAR.'/test.txt'; // cURLのオプション $options = array( // オブジェクトを作成する場合はPUT CURLOPT_PUT => true, // オブジェクトデータ CURLOPT_INFILE => $fp, // 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); } // HTTPステータスコードを取得します。 // オブジェクトの作成、更新が成功すると201 Createdが返ります。 $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE); echo $status_code;die;
ファイルが完成しましたら、ブラウザでアクセスしてみます。
下記画像みたいに「201」がページに表示されたらアップロードは完了です。
前回作成した container-list.php で確認してみます。
前回は、全てのコンテナを確認していました。
下記設定を行うと、特定コンテナの中を確認することができます。
// リクエストURL $url = ENDPOINT_URL . '/'. MAIN_CONTENAR;
設定が完了したら、ブラウザでアクセスします。
下記画像のようにオブジェクト形式で取得できると思います。
無事にオブジェクトを設置できています。
オブジェクトを取得する
今度は、ストレージにアップロードしたオブジェクトを取得します。
object-download.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, ); // リクエストURL // /(スラッシュ)区切りの最後のフィールドがオブジェクト名になる $url = ENDPOINT_URL . '/'.MAIN_CONTENAR.'/test.txt'; // 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";
作成できたらブラウザでアクセスします。
画面に画像のような文字が表示されれば完了です。
ただ、これだと画像が確認できないんですよね・・・
次回は、アップロードした画像をブラウザで確認していきます。
関連
https://www.kabanoki.net/1326
https://www.kabanoki.net/1342