目次
動作環境
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