Windows Azure ストレージへのファイルのアップロード・ダウンロード

Windows Azure ストレージ サービスには Blob、Table、Queue とありますが、
いきなりすべてを理解するのは初心者にとっては難しいと思うので、
ここでは入門として、Windows Azure ストレージを単にファイル置き場として利用する方法を紹介します。
 
ファイル置き場として利用するには、Blob (の中の Block Blob) を利用するのが一般的には最適です。
.NET のコードから Windows Azure ストレージにアクセスする方法としては、
Storage Client API または REST API を利用する方法があります。
REST API でも可能ですが、Storage Client API は REST によるアクセスをラップしたライブラリであり、
.NET Framework を利用できる環境では Storage Client API を利用したほうが簡単です。
 
今回は Storage Client API を利用して Blob にアクセスします。
Microsoft.WindowsAzure.StorageClient.dll への参照が必要です。
 
■ ファイルのアップロード
ファイルのパスを指定してファイルをアップロードするには、CloudBlob.UploadFile メソッドを利用します。

private const string AccountName = "account1";
private const string AccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // BASE64 形式
private const string FilePath = @"C:\Image1.png";

static void Main()
{
    var accountAndKey = new StorageCredentialsAccountAndKey(AccountName, AccessKey);
    var account = new CloudStorageAccount(accountAndKey, true); // HTTPS を利用する場合は true

    CloudBlobClient client = account.CreateCloudBlobClient();

    CloudBlobContainer container = client.GetContainerReference("container1");
    container.CreateIfNotExist();

    CloudBlob blob = container.GetBlobReference(Path.GetFileName(FilePath));

    blob.UploadFile(FilePath);
}


 
注意点
(1) 既定では匿名アクセス不可のコンテナーが作成されます。
(2) 明示的に CloudBlockBlob クラスを使用しなくても、この場合の実体は Block Blob になります。
(3) どの種類のファイルであっても、Blob の Content-Type には既定で application/octet-stream が設定されます。
 
■ ファイルのダウンロード
上記のコードの最後の行を
blob.DownloadToFile(FilePath);
に変更するだけで、ファイルをダウンロードできます。
 
バージョン情報
.NET Framework 4
Windows Azure SDK 1.3
 
参照
学習
 
SDK
 
ストレージ管理ツール
カテゴリー: クラウド. タグ: . Leave a Comment »

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。