2012-01-06 21 views
1

可能重複:
How to create a sub container in azure storage location使用Windows Azure的BLOB,而不是文件夾

我要遷移的應用程序在Windows Azure的工作。在應用程序中,我將文件上傳到服務器上的某個文件夾。該文件夾包含其他嵌套文件夾,這些嵌套文件夾包含文件。

下面

是一些例子:

  • 公司名稱/ CV/CV1.docx
  • 公司名稱/照片管理/ Pic1.jpeg
  • 公司名稱/照片管理/ Pic2.jpeg

現在,在Windows Azure中,我想使用BLOB存儲來保存我的文件。 BLOB中的問題是我有容器,我無法創建嵌套容器來組織我的文件。

任何人都可以幫助我找到最好的解決方案,以保存我的文件。

回答

1

您可以使用Windows Azure Drives,它的工作原理與您的標準硬盤驅動器一樣,即。 「X:」但實際上將文件存儲在Azure Blob中。這樣,您可以像處理傳統應用程序一樣對文件進行處理。

從這個article

一個Windows Azure的驅動器充當安裝服務器的文件系統上的本地NTFS卷,那就是在一個角色上運行代碼訪問。寫入Windows Azure驅動器的數據存儲在Windows Azure Blob服務中定義的頁面blob中,並緩存在本地文件系統上。由於寫入驅動器的數據存儲在頁面blob中,因此即使角色實例被回收,數據也會保留。因此,可以使用Windows Azure驅動器運行必須保持狀態的應用程序,例如第三方數據庫應用程序。

+1

Azure Drives可能只有一個作者。如果應用程序有多個Web或Worker角色接受文件上載實例,則他們無法寫入相同的Azure驅動器。 – 2012-01-06 12:04:00

2

您可以使用蔚藍Blob存儲來存儲文件

唯一的選項,你需要操縱BLOB容器以這種方式是使用如下因素選項:

new BlobRequestOptions { UseFlatBlobListing = true } 


你將能夠使用這句話列出文件:

yourContainer.ListBlobs(new BlobRequestOptions { UseFlatBlobListing = true }); 

它們會出現這樣的:

  • 公司名稱/ CV/CV1.docx
  • 公司名稱/照片管理/ Pic1.jpeg
  • 公司名稱/照片管理/ PIC2。JPEG


你就能找回你的文件是這樣的:

yourBlob.DownloadToFile("CompanyName/Pics/Pic2.jpeg", new BlobRequestOptions { UseFlatBlobListing = true }); 


你可以找到關於這個選項這裏的更多信息: Msdn Definition of the UseFlatBlobListing Property

1

你可以使用雲端硬盤,可讓您在應用程序中安裝NTFS虛擬驅動器。

但我認爲最好的解決方案是使用BLOB storiage分隔符。您不能創建子容器,但可以使用分隔符添加斑點。例如 Container_Name/books/book1.doc Container_Name/books/book2.doc Container_Name/images/img1.jpg 然後,您可以通過指定分隔符來列出blob。

相關問題