PHP SDK for Windows Azure

遅いフォローになりますが、PHP SDK for Windows Azure の CTP1 が、CodePlex で公開されています。

とりあえず、Blob のみではあるのですが、簡単に利用できるようになりました。Table は 7月、Queue は 8月に対応予定のようなので、PHP で Windows Azure を評価して頂ける方は、ご期待下さい。

ちなみに、中にテスト用コードが入っていますので、それを参考に画像ファイルのアップロード、ダウンロード、表示を行うと、以下のようになります。なお、事前の環境設定としては、(3) FastCGI を利用した PHP アプリケーション開発や、Azure Services Training Kit の PHP の lab を参考にして下さい。

※cURL を利用しているため、cURL のエクステンションも追加して下さい(追加していないとエラーになるので、すぐにわかると思いますが)

<?php

require_once 'Microsoft/Azure/Storage/Blob.php';

/** Azure 情報(デバッグ環境, キーはデバッグ用のキーを指定)*/

define('TESTS_BLOB_HOST', '127.0.0.1:10000');

define('TESTS_STORAGE_ACCOUNT', "devstoreaccount1");

define('TESTS_STORAGE_KEY', "xxxxxxxxxxxxxxxx");

/** リソース名定義*/

define('TESTS_BLOB_CONTAINERNAME', 'phpazuretest');

define('TESTS_BLOB_FILENAME', 'testimage.jpg');

/** コンテナを取得*/

$storageClient = new Microsoft_Azure_Storage_Blob(TESTS_BLOB_HOST, TESTS_STORAGE_ACCOUNT, TESTS_STORAGE_KEY, false, Microsoft_Azure_RetryPolicy::retryN(10, 250));

try { $storageClient->deleteContainer(TESTS_BLOB_CONTAINERNAME); } catch (Exception $ex) { }

$storageClient->createContainer(TESTS_BLOB_CONTAINERNAME);

/** ブロブへ画像ファイルをアップロード*/

$result = $storageClient->putBlob(TESTS_BLOB_CONTAINERNAME, TESTS_BLOB_FILENAME, TESTS_BLOB_FILENAME);

/** temp ファイルへ画像ファイルをダウンロード*/

$fileName = tempnam('', 'jpg');

$storageClient->getBlob(TESTS_BLOB_CONTAINERNAME, TESTS_BLOB_FILENAME, $fileName);

/** 画像ファイルを出力*/

header("Content-Type: image/jpeg");

readfile($fileName);

?>