Windows Azure Blobストレージ

2009年9月1日(火)
田中 主夫

PHPで操作するWindows Azure Blobストレージ

 Codeplex で公開されているソフトをいくつか紹介してきましたが、ここに登録されているライブラリ「PHP SDK for Windows Azure」を利用することでWindows AzureストレージをPHPから操作することができます。

 既にPHPが利用可能な環境に、このライブラリを導入することは簡単です。PHP SDK for Windows Azureのページ(http://phpazure.codeplex.com/)からダウロードしたファイルを展開してできる、libraryフォルダ下のMicrosoftフォルダが実際に必要なライブラリです。

 またこのライブラリは php_curl.dll を必要としますので、PHPの拡張フォルダ(extension_dir)にphp_curl.dllがあることを確認し、php.iniファイルの設定を行います。図3-1をご参照ください。

 以上で導入作業は完了です。

 次にこのライブラリを利用し、実際にWindowsのコマンドラインで動作させる「Container名とそのContainerの共有ポリシーを参照する」サンプルプログラムを以下に記載します。このサンプルプログラムではlibraryフォルダにconfig.php、b01.phpの2つのファイルを作成します。

アカウント名、アクセス・キー(Access Key)をconfig.phpに設定します。
------------------------------------------------
$URL_DEV_BLOB = 'blob.core.windows.net' ;
$URL_DEV_TABLE = 'table.core.windows.net';
$DEVSTORE_ACCOUNT = 'アカウント名' ;
$DEVSTORE_KEY = 'アクセス キー';
?>
------------------------------------------------

b01.phpがプログラム本体となります。
------------------------------------------------
require_once 'Microsoft/Azure/Storage/Blob.php';
require_once 'config.php';
$storageClient = new Microsoft_Azure_Storage_Blob($URL_DEV_BLOB,$DEVSTORE_ACCOUNT,$DEVSTORE_KEY );
$containers = $storageClient->listContainers();
foreach ($containers as $container){
echo $container->Name . "\n" ;
var_dump( $storageClient->getContainerAcl($container->Name) );
}
?>
------------------------------------------------

Windowsのコマンドラインからの b01.php を実行します。‘sounds’というContainerが共有ポリシーは「true=公開」で作成されていることを示します。
------------------------------------------------
C:\PHPAzure-0.2.0[1]\library>c:\php\php.exe b01.php
sounds
bool(true)
------------------------------------------------

 PHP SDK for Windows Azureを利用することで、Containerの作成・削除、ローカルファイルからBlobへのファイルの登録・削除、あるいはContainerの共有ポリシーの設定変更など一連の操作を行うことができます。

 PHPアプリケーションの広がりはこうしたライブラリが必要不可欠ですが、Windows Azure用のものはフォルダ名にもあるように「Microsoft」により開発支援されています。マイクロソフト社のオープン・ソース・コミュニティーへのデビューの象徴ともいえます(もっとも初期のバージョンはフォルダ名がZendでしたが)。

“本当のハイパーリンク”の実現へ

 こうしてみてみると、Windows AzureのBlobストレージ・サービスは、既に対応するGUIツールが提供されていることもあり、普通の動画や写真を登録するサービスとどこが違うのだろうかと考えてしまいます。

 思い起こされるのは創刊間もないころのインターネットマガジンのテッド・ネルソン氏のインタビュー記事です(図3-2参照)。この記事はpdfファイル[※3]によるアーカイブ記事からその全文を参照できるようになっています。

 ネルソン氏が以前から提唱してきた「ハイパーメディア」の技術的にも困難な部分を取り除き簡単なかたちにしたものが、あっというまにWorld Wide Webとして爆発的に世界中に普及を遂げてしまいました。この現実を見た彼の心中がこの記事文中にも見受けられます。

 この記事からは14年後の2009年。画像ファイルは引用されると自分のサーバーの負荷になることもあり、直接のリンクを拒否しているサイトが大半です。スケーラビリティを備え、最も実績あるオペレーティング・システムのメーカーが提供するストレージ・サービスが登場しました。ようやくテッド・ネルソン氏が最重要視するも今日に至るまで実現されていない、本当のハイパーリンクができるようになるかもしれません。

 “引用の上に成り立っているわれわれの創造行為。「Transcopyright」はサイバースペースの可能性を拡大する”

 1つのObjectを1つのリンクアドレスで表現することが現実として“技術的には”可能になったわけです。

 次回は「Windows Azure Tableストレージ」について解説します。

【参考文献】
※1「Windows Azure ブロブ - ブロブ ストレージのプログラミング(PDF)」(http://download.microsoft.com/download/D/2/5/D252F5FC-A88D-40F2-AF0C-A9C7BA4E00FA/Windows%20Azure%20Blob%20-%20Dec%202008.pdf)(アクセス:2009/09)

※2「RuslanY Blog」(http://ruslany.net/2009/08/new-release-of-silverlight-player-for-wordpress/)(アクセス:2009/09)

※3「(Theodor Holm Nelson『ザナドゥ』」(http://i.impressrd.jp/files/images/bn/pdf/im199507-102-ted.pdf)(アクセス:2009/09)

「伝説の『ザナドゥ』ついにコード公開」(http://wiredvision.jp/archives/199908/1999082604.html)(アクセス:2009/09)

ERPの導入支援に携わりOracle, SQL Server, DB2などのRDBMSを扱う。クラウドの出現により、これで速度劣化のトラブルから開放されるかと思いきや、ストレージ面ではRDBMSの便利さにあらためて感心する面も。インストールマニアックス2008では苦労の甲斐(http://iis.museum-in-cloud.com)あって勝利。褒美のマイクロソフト本社訪問でWindows AzureのSQL機能を知る。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています