2013-02-28 173 views
0

我目前正在調查問題: 我們有一個後端應用程序,它創建帶有內容的XML文件並將它們存儲爲Azure Blobs(我們無法更改此內容)。如何從azure網站訪問以azure blob託管的XML

一滴樣品網址:http://mytestaccount.blob.core.windows.net

我們正在實現消耗這些XML文件的網頁。

我們當前的解決方案是靜態網頁(不需要iis或任何其他服務器要求)與上述XML文件位於同一個blob上。

問題1:有沒有辦法將域名重定向到我們當前託管的網頁中作爲blob?

我們考慮將我們的Web應用程序作爲Blob託管,但使用Azure網站。這造成了跨域請求的問題(我們必須獲取這些XML文件)。

網站樣本網址:http://mytestpage.azurewebsites.net

問題2:有沒有辦法通過這樣的網頁(如託管Azure的Web頁)jQuery的AJAX調用的XML存儲作爲Blob下載XML?

回答

0

問題1:有沒有辦法將域名重定向到我們當前託管的網頁作爲blob?

是的,這當然是可以的,但是目前有一些限制。請參閱關於配置指向blob存儲的子域的鏈接:http://msdn.microsoft.com/en-us/library/windowsazure/ee795179.aspx。請注意,目前您無法使用此方法爲您的網站指定默認文檔。

問題2:有沒有辦法通過jquery ajax調用從這樣的網頁下載XML(託管爲Azure Web Page)到存儲爲Blob的xml?

讀取blob不會導致跨域請求問題。當您嘗試在blob存儲中發佈/放入一些內容時,會出現跨域問題。

只要你的blob容器是公共的,你應該可以在沒有任何問題的情況下訪問blob。這是一個簡單的GET。但是,如果您的blob容器是私有的,那麼您需要在blob上創建一個具有「讀取」權限的共享訪問簽名URI,並在您的jQuery AJAX調用中使用該URI。

更新:通過jQuery AJAX調用讀取blob會導致「跨域」錯誤。

+1

感謝您的回答。我仍然認爲你錯了。我做了一個概念驗證檢查,現在有辦法直接通過ajax獲取一個xml文件作爲blob託管(讓我們說\t http://mystorageaccount.blob.core.windows.net/files/myfile.xml)從Azure網站上託管的網站(http://myazurewebsite.azurewebsites.net/)。嘗試獲取此文件會引發跨域錯誤。 – user1438047 2013-03-04 10:50:46

+0

是的,你是對的。當我嘗試從另一個域讀取一個blob時遇到同樣的錯誤。我已經更新了我的答案。 – 2013-03-04 12:28:24

+0

我決定將我的頁面託管爲Azure網站(ASP.NET角色)。將其從免費更改爲共享以使用自定義域。寫了一個通用處理程序來訪問blob XML數據。 – user1438047 2013-03-11 10:10:35