鍍金池/ 教程/ Java/ 使用Blob Storage
使用Blob Storage
使用Windows Azure Drive
AppFabric
SQL Azure以及其他服務(wù)
部署第一個 Web Role 程序
使用Queue Storage
創(chuàng)建第一個WebRole程序
使用REST API訪問Storage Service
創(chuàng)建第一個Worker Role程序
Windows Azure
使用Table Storage
定位與產(chǎn)品結(jié)構(gòu)

使用Blob Storage

本文是 Windows Azure 入門教學(xué) 的第四篇文章。

本文將會介紹如何使用 Blob Storage。 Blob Storage可以看做是云端的文件系統(tǒng)。與桌面操作系統(tǒng)上不同,我們是通過 REST API來進(jìn)行對文件的操作。有關(guān) REST API的詳細(xì)信息,請參見 Blob 服務(wù) API

為了方便 .NET開發(fā)人員,我們在 SDK中提供了 Microsoft.WindowsAzure.StorageClient類來幫助發(fā)送REST請求。

在開始本教學(xué)之前,請確保你從Windows Azure 平臺下載 下載并安裝了最新的 Windows Azure開發(fā)工具。 本教學(xué)使用 Visual Studio 2010作為開發(fā)工具。

步驟一:創(chuàng)建解決方案和項目

由于我們要在本地模擬環(huán)境下測試 Blob Storage,首先,請確保 Storage Emulator已經(jīng)啟動。我們可以找到管理器的進(jìn)程手動啟動或者讓 Visual Studio 2010幫助我們啟動他。

右擊工具欄中 Windows Azure模擬器的圖標(biāo),選擇” Show Storage Emulator UI”。彈出如下圖所示的窗口:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.1.png" alt="" />

我們要關(guān)注的是 Service management中 Blob所在的一行。要確保 Status為 Running。

確認(rèn)完畢后啟動 Visual Studio 2010,并且新建一個 Console項目。

步驟二:添加 SDK 程序集引用

請在項目屬性頁里確認(rèn)項目的 Target framework的值是 .NET Framework 4或 .NET Framework 3.5。然后添加對 C:/Program Files/Windows Azure SDK/v1.3/ref/Microsoft.WindowsAzure.StorageClient.dll的引用。該路徑為 SDK默認(rèn)安裝路徑,如果你不能在這個路徑中找到 Microsoft.WindowsAzure.StorageClient.dll請從 SDK安裝路徑中尋找。

步驟三:添加代碼

首先引用命名空間:

using   Microsoft.WindowsAzure;

using   Microsoft.WindowsAzure.StorageClient;

然后在 Main方法中加入如下代碼:

static   void   Main(string [] args)

{

     var   storageAccount =  CloudStorageAccount .DevelopmentStorageAccount;

     var   blobclient = storageAccount.CreateCloudBlobClient();

     //  檢查 container 是否被創(chuàng)建,如果沒有,創(chuàng)建 container

     var   container = blobclient.GetContainerReference("helloworldcontainer" );

     container.CreateIfNotExist();

     //  新建一個 blob ,內(nèi)容為 "Hello World"

     var   blob = container.GetBlobReference("myfile" );

     blob.UploadText("Hello World!" );

     //  讀取并顯示 blob 內(nèi)容

     var   blobcontent = blob.DownloadText();

     Console .WriteLine(blobcontent);

     //  刪除 blob

     var   succeed = blob.DeleteIfExists();

     Console .WriteLine(succeed ?  "Delete Succeed"   :  "Delete Failed" );

     Console .ReadLine();

}

步驟四:觀察并分析代碼

步驟三中的代碼中,首先我們通過 CloudStorageAccount.DevelopmentStorageAccount來說明我們使用的本地的 Development Storage自帶賬戶而不是真正的云端存儲服務(wù)賬戶。 (如果要用真實賬戶可以使用

//DefaultEndpointsProtocol=https 可以改成 DefaultEndpointsProtocol=http 表示用 HTTP 而不是 HTTPS

CloudStorageAccount .Parse("DefaultEndpointsProtocol=https;AccountName=[ 用戶名 ];AccountKey=[ 密碼 ]" );

來實例化對象 )然后通過該賬戶類來實例化一個 Blob客戶端類。這兩步是使用 SDK中 StorageClient程序集來調(diào)用 Blob Storage服務(wù)的必要步驟。接下來的代碼邏輯可以分為四部分:

  • 檢查 container是否被創(chuàng)建,如果沒有,創(chuàng)建 container
  • 新建一個 blob,內(nèi)容為 "Hello World"
  • 讀取并顯示 blob內(nèi)容
  • 刪除 blob

第一部分,我們得到一個 container的引用。就作用來說我們大致上可以把 container類比成是桌面操作系統(tǒng)中的文件夾。我們在得到引用后檢查該 container是否存在。注意如果是用的真實賬號,當(dāng)調(diào)用 CreateIfNotExist()方法后就有 REST請求發(fā)出了。

后面幾部分代碼非常簡單。我們可以看到 SDK提供給我們的 API是十分簡單好用的。

步驟五:運(yùn)行程序

按 F5調(diào)試程序。如果一切正常你將會看到輸出的消息如下圖所示:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.2.png" alt="" />

步驟六:創(chuàng)建新的 Storage Account

使用支持 SilverLight的瀏覽器打開 https://windows.azure.com/。 (注意:您可能需要輸入您的 Live ID和密碼來通過身份驗證 ) 點擊 New Storage Account:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.3.png" alt="" />

在 Create a New Storage Account對話框里,在標(biāo)記為 Choose a subscription 的下拉框里選擇一個訂閱選項:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.4.png" alt="" />

在標(biāo)記為 Enter a URL的文本框里輸入一個 URL前綴來指定它的 URL:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.5.png" alt="" />

選擇區(qū)域:

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.6.png" alt="" />

最后點擊 Create按鈕完成創(chuàng)建。等待創(chuàng)建過程完成后,我們可以看到系統(tǒng)給我們分配了 3個 URL,分別是 Blob URL、 Table URL和 Queue URL,以及剛才我們自己輸入的用戶名。

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.7.png" alt="" />

然后點擊屬性欄里的 Primary access key或者 Secondary access key可以看到這些 key的值。點擊 View Storage Access Keys對話框里的 Copy to Clipboard按鈕就可以拷貝到粘貼板里了。

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.8.png" alt="" />

步驟七:使用 Storage Account 運(yùn)行程序

將代碼里的 :

CloudStorageAccount .DevelopmentStorageAccount

替換成 :

CloudStorageAccount .Parse("DefaultEndpointsProtocol=https;AccountName=[ 用戶名 ];AccountKey=[ 密碼 ]" )

根據(jù)剛才創(chuàng)建的 Storage Account填入用戶名和密碼。最后運(yùn)行程序的結(jié)果是一樣的。但是這次用的是 Windows Azure上的 Blob Storage作為存儲服務(wù)。

http://wiki.jikexueyuan.com/project/windows-azure-getting-started/images/8.9.png" alt="" />