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


Windows Azure BlobストレージのMacOS X用クライアントを公開します。


公開日 : 2013-12-17 00:08:00


この記事は Windows Azure Advent Calendar 2013 の17日目の記事です。

AZBlobClient(Mac OS 用Windows Azure Blobクライアント)の画面

当初「PerlモジュールNet::Azure::StorageClientについて」の記事を書こうと思っていたのですが、気が変わったというか、こっちのほうがトピックスとしてはおもしろいと思うので、すいませんが勝手に変えますm(_ _)m

ちなみに、Perlモジュール Net::Azure::StorageClientはこちら。 GItHubのリポジトリのほうが少し更新は早いかもしれません。

それでも? 一応ふれておきますね。

Perlモジュール Net::Azure::StorageClientについて


use Net::Azure::StorageClient::Blob;
my $blobService = Net::Azure::StorageClient::Blob->new(
                                    account_name => $you_account_name,
                                    primary_access_key => $your_primary_access_key,
                                    container_name => $container_name, );
my $path = 'path/to/blob';
my $res = $blobService->get_blob( $path );
  

返り値は HTTP::Response object(s)です。container_nameは省略可能、その場合、コンテナのパスからblobパスを結合して、container_name/path/to/blob のようにして渡せばあとはよしなにしてくれます。

こちらのページのドキュメントを見ていただければわかると思いますが、Blobについては基本的に一通りのAPIを呼び出せるようになっています。もちろん、アップロードやリストの取得等も簡単です。

Tableやキューについても基本は同じだと思うのですが、個人的にBlobストレージ以外を扱う機会がなかったのでBlobオンリーになっています。機会があればテーブル、キューに対応したモジュールも書けたらと思っています。

ちょっと面白いのはマルチスレッドに対応していて、examples/blobsync.pl のサンプルを使うと以下のような感じでローカルのディレクトリとBlobを高速に同期できる点です。

/usr/bin/perl examples/blobsync.pl --account your_account --accesskey you_primary_access_key --direction upload --path container_name/directory_name --directory /path/to/local/directory --use_thread 10

--direction download とすれば逆方向の同期も可能。AZCopyはMacでは使えないですし、もちろん CloudXplorer もMacでは使えないため、毎回 VMWareで Windowsを立ち上げて作業していたのですが、あまりに面倒だし、個人的には Movable Type を仕事で使うことが多いのに PHP のSDKはあるけどPerl SDKはないし... というので書いた次第。サンプル等を色々書くつもりだったのですが、それはまたいずれ。

ちなみに、以下のページ「COMPLETED」になっていますね。早くPerlも正式サポートされて欲しいものです。

Mac OS X用のBlobストレージクライアントソフトを作ってみたお話

ようやくここから今回の本題に入るのですが、Perlモジュール作ったことでコマンドラインからBlobの読み書きができるようにはなった。とはいえ、コマンドラインツールです。サイトのメンテナンスをする人、例えばFTPクライアントでファイル転送することはできる、くらいのスキルの人(つまり、一般的なWeb制作者(not 開発者))がコマンドライアンから作業って敷居が高いではないですか。で、ふと思い立ってMac OS X用のBlobストレージクライアントソフトを作ってみようと思ったのでした。

百聞は一見に如かず、まずは動画を。

できること

  • マルチアカウント対応
  • コンテナの作成
  • フォルダの作成
  • ファイル/フォルダのアップロード(ドラッグ&ドロップ)
  • ファイル/フォルダのダウンロード(ドラッグ&ドロップ)
  • コンテナのACL(アクセス権)の設定
  • コンテナ/Blobのメタデータの確認、編集、追加、削除
  • Blobの直接編集
  • Blobのクイックルック
  • コンテクストメニュー対応(コントロール+クリック又は右クリック)

使い方

  • 「設定」タブをクリックして、Blobストレージのアカウントとプライマリアクセスキーを入力、保存
  • 「ブラウザ」タブをクリックして「コンテナの一覧」ボタンをクリック
  • あとは、普通? のFTPクライアントのようにダブルクリックでコンテナ、フォルダを開く、ドラッグ&ドロップでファイルのアップロード、ダウンロードなどの操作が行えます。
  • .. で 一つ上の階層への移動、 . でリロード
  • キーボードショートカット対応(←(ひとつ戻る) →(ひとつ進む)、I (情報を見る)、O(開く)、等)
  • クイックルック(スペースキーまたはコマンド+Y)

動画をご覧いただいてわかる通り、そこそこのスピードは出ていると思います。

ソフトウェアのダウンロード(このソフトウェアはβ版です)

現在App Storeに登録すべく、Apple Developer Programへの登録申請を行おうとしたのですが、DUNS 情報の修正のところで時間がかかっているため(2週間くらいかかるようです)、未登録、サンドボックス化がまだなので、野良? アプリ段階ですが(最初の起動時には右クリック(コントロール+クリックから起動する必要があります))、一応置いておきます。ご利用は自己責任でお願いします。

ちなみに、Blobへのアップロード、コンテナ作成、コンテナのアクセス権設定などはすべてこのソフト自身でやりました。

と、いうことでPerlモジュールの話し改め Mac OS X用のAzure Blobクライアントソフトの紹介になりましたが、このソフトの処理部分は実はこのPerlモジュールが使われています。XojoでGUIを被せただけで、実際のAPIを利用したアクセスはPerlが担っています。興味のある方は以下のエントリーもどうぞ。

追記 : 動かなかった(エラー)という方がいたので、エラーについてある程度の詳細が出るようにしたバージョンに差し替えました。宜しければフィードバックいただけると幸いです。junnama[at].alfasado.jp

カテゴリ


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

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