2011-07-02 94 views
0

我正在與Windows Azure一起創建一個ASP.NET MVC項目,我已經檢查了WAPTK(Windows Azure平臺培訓工具包),Google,並且在這裏爲我的問題提供了答案,但是我找不到答案。在ASP.NET MVC項目中,我在哪個文件中爲雲存儲創建容器? (在WAPTK中,有一個動手實驗室,它使用webforms並將存儲容器放入_Default部分類中。)在Windows Azure中,我應該爲ASP.NET MVC存儲哪些文件?

回答

1

在ASP.NET MVC項目中,我在哪個文件中爲雲存儲創建容器? (在WAPTK,有一個動手實驗,使用Web表單,並把存儲容器中,在_Default部分類)。

一般來說,我會建議你在一些設立了集裝箱接入(包括創建)很好地封裝類 - 最好隱藏在易於測試的界面之後。

我建議:

  • 把這個類,它是一個類庫接口(而不是在你的ASP.Net項目)
  • 把配置細節在csdef/cscfg文件
  • 如果您只打算使用固定的容器列表,則可以:
    • 在安裝您的應用程序之前創建這些應用程序 - 例如從一個簡單的命令行應用程序
    • 或Global.asax中
  • 的初始化創建這些從呼叫如果計劃動態創建的容器(例如,用於不同的用戶或動作),然後從控制器/服務創建這些代碼是必需的 - 例如當用戶註冊或首次執行操作時。如果行爲可能發生多次,並且你真的不知道容器是否在那裏,那麼找到一些方法(例如,內存中的散列表或in-sql持久表)來幫助確保你不'需要不斷調用CreateIfNotExist - 記住,每次調用CreateIfNotExist都會降低您的應用程序的性能並降低成本。
  • 爲「正常」的訪問操作,例如讀取/寫入/刪除,這些通常是由控制器代碼 - 或者從服務代碼坐在無疑是一個控制器

如果後面,想起來有點像「如何如果我在本地磁盤上或在共享網絡驅動器上創建文件夾,我是否可以劃分邏輯「

希望能有所幫助。

斯圖爾特

+0

這很有幫助,謝謝你的時間。 –

0

我不確定我是否正確理解您,但一般來說文件和Azure不合適好。存儲在本地文件系統中的所有更改都是不穩定的,只能保證與當前Azure實例一樣長。但是,您可以創建一個blob和mount it as a local drive,這會使數據持久。這種方法有一些侷限性,因爲它會允許一個天藍色的實例寫入和最多8個讀取器。

所以相反,你應該使用blob而不是文件。知道訪問哪個blob的問題將通過使用Azure表存儲來爲Blob索引來解決。

我最近去那裏演講已經調查了不少關於Azure的表存儲和他的研究結果是,限制分區鍵100-1000元組將提供最佳性能的介紹。 (分區鍵湛藍的內部使用,以確定哪些數據組。)

+0

這很明顯,我需要更清楚一點。 –

0

你絕對應該使用Blob存儲爲您的文件。這並不是特別困難,因爲這是一個新項目,不需要使用Azure Drives。

如果你只是使用Blob存儲服務爲您的網站中的圖片,那麼你可以用普通的標籤中引用它們在你的HTML如

<img src="http://myaccountname.blob.core.windows.net/containername/filename"> 

如果文件或容器共享這隻會工作,不安全。如果您只是在html頁面上提供靜態內容,這很好。

如果你想有斑點的安全訪問一個安全的網站,那麼你必須做兩件事情,首先你的網站就需要知道如何訪問您的斑點。

在ServiceDefinition.csdef中的文件

你將需要包括

<Setting name="StorageAccount" /> 

然後添加

<Setting name="StorageAccount" value="DefaultEndpointsProtocol=https; 
AccountName=[youraccountname];AccountKey=[youraccountkey]" /> 

您serviceconfiguration.csfg文件。

然後你可以使用在Windows Azure SDK訪問您的Web角色帳戶內。與

Dim Account As CloudStorageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("StorageAccount")) 
Dim blobClient As CloudBlobClient = Account.CreateCloudBlobClient 

開始從那裏你可以

  • 讀/寫斑點
  • 刪除斑點
  • 列表斑點
  • 使用共享訪問簽名的創建時間有限的網址。

史蒂夫馬克思有很大的資源here。雖然它是關於從silverlight訪問blob存儲而不使用的,它會在一個地方爲您提供大量信息。

你的問題不是很具體,但這應該給你一些想法從哪裏開始。

@Faester是正確的,您可能需要一些資源或者表存儲或SQL Azure來存儲對這些文件的引用。

相關問題