Microsoft Azure PHP SDKでPHPからBlobストレージへアクセス
公開日 : 2014-05-09 17:32:40
Windows AzureはMicrosoft Azureに変わったそうで。まぁ、名前はどうでもいい。
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のみ)。
宜しければご活用ください。