我有一個web應用程序可以接收用戶上傳的文件。這些文件存儲在Web服務器的目錄中。其他用戶可以下載這些文件。我正在自定義此應用程序以在Windows Azure上進行遷移。 在Windows Azure上,這些文件存儲在sitesroot和approot中。 Windows Azure會自動同步這些更改嗎?或者我應該手動同步它們?也許,用這種方法存儲文件是不合適的?實例中的approot或siteroot是否同步手動更改了文件系統?
回答
@Igorek很好的回答。只是想補充一點。您的每個角色實例都完全獨立運作。就其本質而言,角色實例是Windows 2008 Server。如果您有5個Web角色實例,則有5個VM正在運行,每個VM都有自己的本地存儲。
而且,雖然您可以使用本地存儲,但它是每個虛擬機實例的獨立存儲,它是非持久性的(意思是說磁盤崩潰,數據不存在)。
作爲@Igorek建議的Blob存儲獨立於您的角色實例。您可以從任何地方(從任何角色實例,甚至從本地應用程序)訪問它。 blob存儲按容器組織,每個blob可以達到200GB。但最重要的是:它是耐用:在數據中心內進行三重複制,並被地理複製到鄰近的數據中心。
只要您的存儲帳戶與您的應用程序位於同一個數據中心,訪問速度非常快(每個blob約爲60MB/sec)。此外,你可以設置個人blob(或容器)公衆或私人。公共斑點非常適合CSS,圖像或其他您可能想要在網頁上呈現的內容。他們通過URI是可訪問的,如:
https://myapp.blob.core.windows.net/images/logo.png
使用這種類型的URI,你可以將它嵌入到網頁,瀏覽器會從現在直接存儲檢索這些圖像,完全繞過您的IIS Web服務器,這反過來會減輕角色實例的負擔。充分利用服務器的負載,最終可以減少實例數量。
現在,與私人斑點,這些不能被外界看到;您需要使用存儲帳戶密鑰才能訪問這些密鑰。對於您的Web服務器,這是全透明的。您可以快速將數據加載到blob中,將Blob下載到本地存儲,爲最終用戶提供內容......就像從本地磁盤提供內容一樣。如果您需要對文件執行操作,並且必須將文件放置在磁盤上,則可以先將其下載到本地存儲,然後從本地存儲執行操作。
私人blob還有一件事:您可以通過在查詢字符串上使用共享訪問簽名對url進行編碼來授予對這些訪問的臨時訪問權限。這是使用您的存儲帳戶密鑰簽署的,並授予長達一個小時的訪問權限。例如,如果您的最終用戶擁有其他人無法訪問的特定於帳戶的pdf,則您可以選擇提供此內容。或者:
- 下載,從Blob存儲到本地存儲的私人團塊,然後將其發送回通過IIS中的瀏覽器(或任何其他的Web服務器),或
- 返回一個鏈接到私人斑點,與編碼一個共享訪問簽名(有一些短TTL過期,可能是5分鐘),讓最終用戶從瀏覽器訪問blob(例如通過鏈接點擊),然後直接從blob存儲下載blob,繞過你的角色實例。
的確,Azure確實在之間,而不是在實例之間同步目錄。您想要將文件存儲在中央存儲中。 Azure Blob存儲是迄今爲止最好的選擇。訪問存儲的API相對簡單
- 1. 爲什麼在Windows Azure WebRole中將相同的文件複製到/ Approot和/ Siteroot?
- 2. 是否可以使用UIButton實例更改系統卷?
- 3. 文件系統通知更改了?
- 4. 文件系統同步庫?
- 5. Eclipse與ant的build.xml文件系統更改不同步
- 6. 關閉fstream是否保證文件系統同步?
- 7. AEM是否可以從發佈實例寫入文件系統
- 8. 模擬器時鐘是否與實際系統時鐘同步?
- 9. 同步系統活動
- 10. MySQL系統啓動同步
- 11. 的Hadoop文件系統是物理文件系統或虛擬文件系統
- 12. 活動窗口上是否有Windows系統事件更改?
- 13. 在集羣環境中同步文件系統中的文件
- 14. 使用文件系統同步SharePoint集?
- 15. Eclipse源與文件系統不同步
- 16. Cygwin cygdrive與文件系統不同步
- 17. 同步文件系統對象層次
- 18. 遠程進行文件系統同步
- 19. 是否可以在Android或iOS中更改gmail同步間隔?
- 20. 異步和同步I/O操作系統是否獨立?
- 21. Microsoft文件同步 - 僅同步包含更改的文件?
- 22. .NET Thread.Sleep是否受DST(或系統時間)更改影響?
- 23. 的Prestashop - 爲了區分是否是手動或前端爲了
- 24. 是否有針對頂級活動更改的系統廣播?
- 25. 我的系統中是否應該有一個或多個XXXRepository實例和DDD?
- 26. 如何在lnux系統中檢測文件更改或刪除
- 27. 更改cramfs文件系統的權限
- 28. 更改系統文件的權限
- 29. 手動更改平臺中的文件是否是一種很好的做法?
- 30. 自動觀察UITableView中的文件系統更改
謝謝你的詳細解答。我能再澄清一件事嗎?如果我想動態添加aspx頁面並允許執行它們,我應該怎麼做? – eternity
要實現此目的,您應該考慮創建一個自定義虛擬路徑提供程序,以從Azure Blob存儲而不是本地文件系統獲取aspx頁面。您可以從以下知識庫文章開始:http://support.microsoft.com/kb/910441 –
謝謝。這似乎是我需要的。 – eternity