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

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)

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30