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

カバの樹

ConohaのオブジェクトストレージをREST APIで操作する part3(オブジェクトのアップロードと確認)

動作環境

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

  • B!