Windows Azure ストレージを
PHPから使う
株式会社pnop 桜井 剛
13年7月14日日曜日
Agenda.
1.Azure SDK for PHP
2.Windows Azure ストレージ、Blobとテーブルの扱い方
3.お知らせ
13年7月14日日曜日
13年7月14日日曜日
Azure ストレージの特徴
・以下のコンポーネントがある
Blob(ファイル格納)、Table(永続化KVS)、Queue、
Drive(ディスクイメージ)
・データは同一DC内で3重化されて保持、他のリージョ
ンのDCにもコピー(冗長性に優...
本日は、BlobとテーブルをPHPから操作してみま
す。
#MacBook + Linux で
13年7月14日日曜日
Windows Azure SDK for
PHP
https://github.com/WindowsAzure/azure-sdk-for-php
13年7月14日日曜日
インストール方法
vi composer.json
wget http://getcomposer.org/composer.phar
php composer.phar install
{
"require": {
"microsoft/wi...
Windows Azure SDK for PHP から
Blob ストレージを扱う
13年7月14日日曜日
Blob ストレージの特徴
・ファイルを格納するストレージ
・REST API を経由して読み書きする
・アクセス権限が設定できる(Private、Publicコンテナ、PublicBlob)
・Publicの場合、直接URIを指定してアクセス...
Blob ストレージの操作の準備
・BlobストレージへアクセスするためのProxyオブジェ
クトを作成して、それを経由して操作します。
$blobReatProxyがそれに該当します。
<?php
$storageAccessAccount ...
Blob ストレージコンテナの作成
・先ほど作成したProxyオブジェクトを使って、Publicコ
ンテナを作ります。
$container_name = ‘my_container’;
$createContainerOptions = ne...
Blobのアップロード
・Blobをアップロードするには、以下のようにします。
$content = fopen("myfile.txt", "r");
$blob_name = "myfile.txt";
try {
$blobRestPro...
コンテナのBlob一覧
・以下のように一覧を取得します。
try {
$blob_list = $blobRestProxy->listBlobs($container_name);
$blobs = $blob_list->getBlobs(...
Windows Azure SDK for PHP から
Table ストレージを扱う
13年7月14日日曜日
Table ストレージの特徴
・ストレージサービスに永続化したKVS
・NoSQL
・PartitionKeyとRowKeyの2つによる値(エンティテ
ィ)の読み書き
・セッション管理などに適している
類似の仕組み:KyotoTycoonなど
...
Table ストレージの操作の準備
・TableストレージへアクセスするためのProxyオブジェ
クトを作成して、それを経由して操作します。
$tableReatProxyがそれに該当します。
<?php
$storageAccessAccou...
テーブルの作成
・先ほど作成したProxyオブジェクトを使って、データを
格納するテーブルを作ります。
$table_name = ‘mytable’;
try {
$tableRestProxy->createTable($table_nam...
値(Entity)のインサート
・値をインサートするには、以下のようにします。
use WindowsAzureTableModelsEntity;
use WindowsAzureTableModelsEdmType;
$entity = n...
テーブルの検索
・以下のようにクエリを設定して検索します。
$filter = "RowKey eq '2'";
try {
$result = $tableRestProxy->queryEntities($table_name, $filt...
実際の利用例
アプリサーバー
blobストレージ
Tableストレージ
SQL Database
動画の保存・読出
セッション情報の保存・読出
一般的なデータの保存・読出
ユーザーは動画を直接読出
13年7月14日日曜日
Upcoming SlideShare
Loading in …5
×

PHP matsuri 2013 Windows Azure Storage SDK for PHP

851 views

Published on

How to use Windows Azure Storage SDK for PHP

Published in: Technology
1 Comment
1 Like
Statistics
Notes
  • http://www.dbmanagement.info/Tutorials/MYSQL-PHP.htm
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
851
On SlideShare
0
From Embeds
0
Number of Embeds
34
Actions
Shares
0
Downloads
4
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

PHP matsuri 2013 Windows Azure Storage SDK for PHP

  1. 1. Windows Azure ストレージを PHPから使う 株式会社pnop 桜井 剛 13年7月14日日曜日
  2. 2. Agenda. 1.Azure SDK for PHP 2.Windows Azure ストレージ、Blobとテーブルの扱い方 3.お知らせ 13年7月14日日曜日
  3. 3. 13年7月14日日曜日
  4. 4. Azure ストレージの特徴 ・以下のコンポーネントがある Blob(ファイル格納)、Table(永続化KVS)、Queue、 Drive(ディスクイメージ) ・データは同一DC内で3重化されて保持、他のリージョ ンのDCにもコピー(冗長性に優れている) 13年7月14日日曜日
  5. 5. 本日は、BlobとテーブルをPHPから操作してみま す。 #MacBook + Linux で 13年7月14日日曜日
  6. 6. Windows Azure SDK for PHP https://github.com/WindowsAzure/azure-sdk-for-php 13年7月14日日曜日
  7. 7. インストール方法 vi composer.json wget http://getcomposer.org/composer.phar php composer.phar install { "require": { "microsoft/windowsazure": "*" }, "repositories": [ { "type": "pear", "url": "http://pear.php.net" } ], "minimum-stability": "dev" } これで実行した場所に「vendor」というディレクトリが出来る。これがSDK。 13年7月14日日曜日
  8. 8. Windows Azure SDK for PHP から Blob ストレージを扱う 13年7月14日日曜日
  9. 9. Blob ストレージの特徴 ・ファイルを格納するストレージ ・REST API を経由して読み書きする ・アクセス権限が設定できる(Private、Publicコンテナ、PublicBlob) ・Publicの場合、直接URIを指定してアクセス可能 http://アカウント名 ・オンラインストレージや動画共有サイトなどのサービスに適している 類似のサービス:Amazon S3、IIJ GIO ストレージサービスなど 13年7月14日日曜日
  10. 10. Blob ストレージの操作の準備 ・BlobストレージへアクセスするためのProxyオブジェ クトを作成して、それを経由して操作します。 $blobReatProxyがそれに該当します。 <?php $storageAccessAccount = 'AccountName'; $storageAccessKey = 'AccountAccessKey'; require_once 'vendor/autoload.php'; use WindowsAzureCommonServicesBuilder; use WindowsAzureCommonServiceException; $connectionString = "DefaultEndpointsProtocol=http;AccountName=" . $storageAccessAccount . ";AccountKey=" . $storageAccessKey; $blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString); 13年7月14日日曜日
  11. 11. Blob ストレージコンテナの作成 ・先ほど作成したProxyオブジェクトを使って、Publicコ ンテナを作ります。 $container_name = ‘my_container’; $createContainerOptions = new CreateContainerOptions(); $createContainerOptions->setPublicAccess(PublicAccessType::CONTAINER_AND_BLOBS); $createContainerOptions->addMetaData("key1", "value1"); $createContainerOptions->addMetaData("key2", "value2"); try { $blobRestProxy->createContainer($container_name, $createContainerOptions); } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } 13年7月14日日曜日
  12. 12. Blobのアップロード ・Blobをアップロードするには、以下のようにします。 $content = fopen("myfile.txt", "r"); $blob_name = "myfile.txt"; try { $blobRestProxy->createBlockBlob($container_name, $blob_name, $content); } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } 13年7月14日日曜日
  13. 13. コンテナのBlob一覧 ・以下のように一覧を取得します。 try { $blob_list = $blobRestProxy->listBlobs($container_name); $blobs = $blob_list->getBlobs(); foreach($blobs as $blob) { echo $blob->getName().": ".$blob->getUrl()."<br />"; } } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } 13年7月14日日曜日
  14. 14. Windows Azure SDK for PHP から Table ストレージを扱う 13年7月14日日曜日
  15. 15. Table ストレージの特徴 ・ストレージサービスに永続化したKVS ・NoSQL ・PartitionKeyとRowKeyの2つによる値(エンティテ ィ)の読み書き ・セッション管理などに適している 類似の仕組み:KyotoTycoonなど 13年7月14日日曜日
  16. 16. Table ストレージの操作の準備 ・TableストレージへアクセスするためのProxyオブジェ クトを作成して、それを経由して操作します。 $tableReatProxyがそれに該当します。 <?php $storageAccessAccount = 'AccountName'; $storageAccessKey = 'AccountAccessKey'; require_once 'vendor/autoload.php'; use WindowsAzureCommonServicesBuilder; use WindowsAzureCommonServiceException; $connectionString = "DefaultEndpointsProtocol=http;AccountName=" . $storageAccessAccount . ";AccountKey=" . $storageAccessKey; $tableRestProxy = ServicesBuilder::getInstance()->createTableService($connectionString); 13年7月14日日曜日
  17. 17. テーブルの作成 ・先ほど作成したProxyオブジェクトを使って、データを 格納するテーブルを作ります。 $table_name = ‘mytable’; try { $tableRestProxy->createTable($table_name); } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } 13年7月14日日曜日
  18. 18. 値(Entity)のインサート ・値をインサートするには、以下のようにします。 use WindowsAzureTableModelsEntity; use WindowsAzureTableModelsEdmType; $entity = new Entity(); $entity->setPartitionKey("pk"); $entity->setRowKey("1"); $entity->addProperty("PropertyName1", EdmType::STRING, "Sample1"); $entity->addProperty("PropertyName2", EdmType::STRING, "Sample2"); try{ $tableRestProxy->insertEntity($table_name, $entity); } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } 13年7月14日日曜日
  19. 19. テーブルの検索 ・以下のようにクエリを設定して検索します。 $filter = "RowKey eq '2'"; try { $result = $tableRestProxy->queryEntities($table_name, $filter); } catch(ServiceException $e){ $code = $e->getCode(); $error_message = $e->getMessage(); echo $code.": ".$error_message."<br />"; } $entities = $result->getEntities(); foreach($entities as $entity){ echo $entity->getPartitionKey().":".$entity->getRowKey()."<br />"; } 13年7月14日日曜日
  20. 20. 実際の利用例 アプリサーバー blobストレージ Tableストレージ SQL Database 動画の保存・読出 セッション情報の保存・読出 一般的なデータの保存・読出 ユーザーは動画を直接読出 13年7月14日日曜日

×