アルファサード株式会社 代表取締役 野田 純生のブログ


Microsoft Azure PHP SDKでPHPからBlobストレージへアクセス


公開日 : 2014-05-09 17:32:40


Windows AzureはMicrosoft Azureに変わったそうで。まぁ、名前はどうでもいい。

AZBlobDisk

Perl版は無いのですがPHPはSDKがあります。Azureのストレージへのアクセスはトークンの組み立てが面倒なので、それだけでもね。こういうのがあると手軽です。

注意点としては、PEARの HTTP/Request2.php が必要なところですね(Mail_mimeと Mail_mimeDecodeも必要)。

The PHP Client Libraries for Azure have a dependency on the HTTP_Request2, Mail_mime, and Mail_mimeDecode PEAR packages. The recommended way to resolve these dependencies is to install these packages using the PEAR package manager

use WindowsAzure\Common\ServicesBuilder;
require_once 'WindowsAzure/WindowsAzure.php';

$protocol = 'https';
$container_name = 'test';
$connectionString = "DefaultEndpointsProtocol=${protocol};AccountName=${account_name};AccountKey=${primary_access_key}";
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService( $connectionString );

 // 一覧取得
$blob_list = $blobRestProxy->listBlobs( $container_name );
$blobs = $blob_list->getBlobs();

 // Blobの取得
$blob = $blobRestProxy->getBlob( $container_name, 'path/to/blob' );
ob_start();
fpassthru($blob->getContentStream());
$content = ob_get_contents();
ob_end_clean();
file_put_contents( 'path/to/out', $content );

// Blobの生成(アップロード)
$blobRestProxy->createBlockBlob( $container_name, 'path/to/new_blob', $content );

尚、Perl版はこれ相当のものが無いので自分で作成したものがあります(とりあえずはBlobのみ)。
宜しければご活用ください。

カテゴリ


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の創業者であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ