Azure実践活用虎の穴
〜クラウドで企業ネットワークはどう変わるのか? クラウド活用実践講座〜

Gladinet Cloud Desktopを使用したクラウド・ストレージ活用術

亀渕 景司
2012/04/19
Page1 Page2 Page3

.NET Frameworkを使用したファイル操作

 Gladinet Cloud Desktopを使用してマウントしたWindows Azure BLOBストレージのクラウド・ドライブは、Windows上からはネットワーク・ドライブとして認識されるので、.NET FrameworkのSystem.IO名前空間に実装されているディレクトリやファイル操作を行うクラスを利用してアクセスを行うことができる。

 サンプルを作成してみよう。新規に作成したコンソール・アプリケーションのProgram.cs/Module1.vbファイルに次のコードを記述する。

using System;
using System.IO;

class Program
{
  static void Main(string[] args)
  {
    string storageRoot = @"Z:\Windows Azure BLOBストレージ";

    // フォルダの作成(1)
    string ex1 = Path.Combine(storageRoot, @"ex1");
    Directory.CreateDirectory(ex1);

    // フォルダの列挙(2)
    foreach(var directory in Directory.GetDirectories(storageRoot))
    {
      Console.WriteLine(directory);
    }

    // ファイルの作成と書き込み(3)
    string ex2 = Path.Combine(ex1, "ex2.txt");
    using (var writer = File.CreateText(ex2))
    {
      writer.WriteLine("ファイルの作成テスト");
    }

    // ファイルの読み込み(4)
    using (var reader = File.OpenText(ex2))
    {
      Console.Write(reader.ReadToEnd());
    }
  }
}
Imports System.IO

Module Module1

  Sub Main()

    Dim storageRoot = "Z:\Windows Azure BLOBストレージ"

    ' フォルダの作成(1)
    Dim ex1 = Path.Combine(storageRoot, "ex1")
    Directory.CreateDirectory(ex1)

    ' フォルダの列挙(2)
    For Each direct In Directory.GetDirectories(storageRoot)
      Console.WriteLine(direct)
    Next

    ' ファイルの作成と書き込み(3)
    Dim ex2 = Path.Combine(ex1, "ex2.txt")
    Using writer = File.CreateText(ex2)
      writer.WriteLine("ファイルの作成テスト")
    End Using

    ' ファイルの読み込み(4)
    Using reader = File.OpenText(ex2)
      Console.Write(reader.ReadToEnd())
    End Using

  End Sub

End Module
サンプルとなるコンソール・アプリケーションのコード内容(上:C#、下:VB)

 上記のコードを実行すると(次の画面はその実行例)、通常のファイル・システムと同じようにディレクトリ一覧の取得やファイルの読み書きが行えることが分かる。

図9 コンソール・アプリケーションの実行例
通常のファイル・システムと同じようにディレクトリ一覧の取得やファイルの読み書きが行える。
  フォルダの作成結果。
  フォルダ一覧の列挙結果。
  ファイルへの書き込み結果。
  ファイルからの読み込み結果。

 このように、一般的なファイル操作と変わらずアクセスができるため、既存のアプリケーションも含め、パスを変更するだけでWindows Azure BLOBストレージ上のファイルを扱うことが可能だ。

コマンド・プロンプトを使用したファイル操作

 .NET FrameworkのTipsで説明したとおり、クラウド・ドライブはWindowsのネットワーク・ドライブとして扱えるので、次の画面の例のように、コマンド・プロンプトを使用したコマンドからファイル操作を行うこともできる。

図10 コマンド・プロンプトでのファイル操作例
クラウド・ドライブはWindowsのネットワーク・ドライブとして扱えるので、コマンドライン処理も自由に行える。
  COPYコマンドによるファイルのコピーと結果の確認。
  ECHOコマンドによる文字列のファイルへの出力と確認。
  DIRコマンドによるファイルの列挙。
  DELコマンドによるファイルの削除と結果の確認。

 日次バックアップや既存のバッチ・ファイルの活用、Visual StudioなどのIDEによるビルド時アクションなど、既存の仕組みから大きな変更をせずに、クラウド・ストレージを利用できるのが特長だ。

Office 2010を使用したOffice文書の操作

 一般的な意見として、「データがロストする確率の低い場所へ、Office文書をバックアップしたい」や「自宅などの他拠点から同じファイルを参照・編集したい」といった要望は多い。これらの要望はクラウド上のストレージやサービスを利用することで解決できるが、同様にクラウド・ドライブでも対応が可能だ。

 クラウド・ドライブ上にファイルが保存されると、Windows Azure BLOBストレージ上に冗長化して保存されるだけでなく、インターネット接続さえあればどこからでもクラウド・ドライブ上のファイルにアクセスできる。また、通常は「非公開のプライベート・コンテナ」として設定されるフォルダを「公開」設定に変更することで、簡単に公開文書として設定することも可能だ(次の「【補足】Windows Azure BLOBストレージのアクセス権について」を参照)。

【補足】Windows Azure BLOBストレージのアクセス権について

 Windows Azure BLOBストレージのコンテナには、匿名ユーザーからのアクセスに対して3種類のレベルに応じたアクセス権を設定することが可能だ。

  • Full public read access(完全なパブリック読み取りアクセス):
      匿名ユーザーは、設定されたコンテナおよびコンテナ内のBLOBを列挙し、かつアクセスすることが可能。
  • Public read access for blobs only(Blob に限定したパブリック読み取りアクセス):
      匿名ユーザーは、指定されたBLOBにアクセスすることは可能だが、コンテナ内のBLOBを列挙することは不可。
  • No public read access(パブリック読み取りアクセスなし=プライベート):
      匿名ユーザーは、アクセスすることができない。
  • 参考: 「コンテナーのアクセス制御の設定

 Gladinet Cloud Desktopは、既定で「No public read access」を設定したコンテナ(フォルダ)を作成する。つまり個人用として作成され、権限を持たない匿名ユーザーである他者からは参照することができない。もし、Windows Azure BLOBストレージ上に保存したファイルをインターネット上で公開したい場合は、以下の画面の手順に従って、Gladinet Cloud Desktop付属のGladinet Cloud Explorerツールを使用して公開したいコンテナ(フォルダ)のアクセス権を変更する必要がある。

クラウド・ストレージ(この例では「Windows Azure BLOBストレージ」フォルダ)の右クリック・メニューから[Access Control]を選択
Windows Azureストレージのアカウントを設定
アクセス権限を設定して[OK]ボタンをクリック
図11 Gladinet Cloud Explorerによるアクセス権の変更
Gladinet Cloud Desktop付属のGladinet Cloud Explorerツールを使用して公開したいコンテナ(フォルダ)のアクセス権を変更する。
  「C:\Program Files (x86)\Gladinet\Gladinet Cloud Desktop\GladBrowser.exe」をコマンド・プロンプト(もしくは[スタート]メニューの[すべてのプログラム]−[Gladinet]−[Gladinet Cloud Explorer])から起動し、右の欄でアクセス権を変更するフォルダ(コンテナ)のコンテキスト・メニューから[Access Control]メニューを実行する。
  [Primary Access Key]欄にWindows Azureストレージへアクセスするためのキーを入力する(起動後初回操作時のみ)。
  [Test Connection]ボタンをクリックし、接続テストをした後、問題がなければ[OK]ボタンでアカウント設定を完了する(起動後初回操作時のみ)。
  設定対象となるルート・フォルダおよび第1階層のフォルダのアクセス・レベルを変更する。具体的には左上のスライダを動かす。一番下に動かすことで「Full public read access」に設定できる。

 フォルダ(コンテナ)のアクセス権は、ルートおよびルート直下の第1階層のフォルダ(コンテナ)のみ変更可能だ。第1階層より深い階層のフォルダは親フォルダの設定を引き継ぐ。

 また、匿名ユーザーがアクセスするためのURLは、フォルダおよびファイルのコンテキスト・メニューから[Properties]−[Web Url]を選択した際に表示されるダイアログで確認することができる(次の画面はその例)。

図12 アクセス用URLの確認

 それでは実際に、Windows Azure BLOBストレージ上に保存したファイルをインターネット上で公開してみよう。なお前提条件として、前述の「【補足】Windows Azure BLOBストレージのアクセス権について」を参考に、ルート・フォルダおよび「ex1」フォルダの両方に対して「Full public read access」のアクセス権限を設定しているものとする。

 まず次の画面の手順で、Word文書をPDFとしてクラウド・ストレージ(厳密には「Z:\Windows Azure BLOBストレージ」フォルダ)に保存する。

リボン・インターフェイスの[ファイル]タブを開き[保存と送信]−[PDF/XPS ドキュメントの作成]を実行
図13 Word 2010文書のPDF化
Word文書をPDFとしてクラウド・ストレージ(厳密には「Z:\Windows Azure BLOBストレージ」フォルダ)に保存する。なお、今回はWord 2010の例だが、バージョンが違うと、操作方法はこれと同じではない。
  Wordの[ファイル]−[保存と送信]を選択し、[PDF/XPS ドキュメントの作成]を選択する。
  「PDF/XPSドキュメントの作成」ボタンをクリックし、クラウド・ドライブ上に保存する。

 保存後に、ブラウザなどから対象ファイルへのURL(このURLの取得方法は、前述の「【補足】Windows Azure BLOBストレージのアクセス権について」を参照)を開くことで、先ほどのファイルが表示されることが確認できる(次の画面を参照)。

図14 BLOBストレージ上のPDFファイルをブラウザで参照

 このように、Gladinet Cloud Desktopを使用してクラウド・ドライブ上に保存すれば、素早く文書を一般公開することができる。また一般的なファイル拡張子であれば自動的に適切なContent-Typeヘッダが設定されるため、特別な操作を行わなくても適切にブラウザやクライアントに処理を促すことが可能だ。

 それでは最後に次のページでは、Windows Azureアプリケーションを開発した場合に、そのアプリケーションのコンテンツ部分のみをWindows Azure BLOBストレージに切り出して管理する方法を紹介する。


 INDEX
  Azure実践活用虎の穴 〜クラウドで企業ネットワークはどう変わるのか? クラウド活用実践講座〜
  Gladinet Cloud Desktopを使用したクラウド・ストレージ活用術
    1.Gladinet Cloud Desktopのインストールと設定
  2..NET Frameworkを使用したファイル操作/コマンド・プロンプトを使用したファイル操作/Office 2010を使用したOffice文書の操作
    3.Windows Azureアプリケーションのコンテンツ管理


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間