2012-04-05 106 views
0

我想獲得VHD驅動器的服務器路徑。我正在研究azure web應用程序。我有一些文件上傳並保存到Test.VHD驅動器(說)。這是某些blob容器「驅動器」內的雲驅動器(比如說)。我通過以下方式安裝並映射它:VHD驅動器的服務器路徑

driveLetter = drive.Mount(localCache.MaximumSizeInMegabytes - 20, DriveMountOptions.Force); 

「driveLetter」是「A:\」(說)。現在我在頁面上顯示所有的pdf文件名稱作爲鏈接按鈕。在使用javascript函數

點擊我要打開該PDF文件瀏覽器這些文件的
window.open(pdfPath, pdfName, 'scrollbars=yes, resizable=yes'); 

我的問題是我有什麼傳爲「pdfPath」參數?

我有路徑「A:\ Uploads \ pdfName.pdf」。但我無法通過它。我必須通過它像http://servername:port/path,以便用戶可以查看它。

但我不知道如何將其轉換爲鏈接,如http://servername:port/path。通過這樣做,我可以在瀏覽器中查看pdf。

請幫我,

在此先感謝。

回答

0

我知道這並不直接回答你的問題,但是......我想你會看到你寫天青做一些限制驅動器:

  • 只有一個角色實例在任何給定時間都可以對vhd具有寫入權限。這意味着您的解決方案的規模超過一個實例,除非每個實例都有一個唯一的vhd(或每個add'l實例只是創建一個只讀快照)
  • 您現在必須通過Role實例訪問單個文件不能直接鏈接到vhd內的文件到外部世界
  • 要管理任何文件,您必須安裝Azure驅動器。這意味着你不能管理的Windows Azure之外的任何代碼文件(Azure的驅動器都只能由Windows Azure角色實例安裝)

我建議單個文件寫入到個別塊。

  • 任何實例都可以讀取/(每個文件在一個單獨的BLOB)寫每個單獨的文件
  • 你必須嵌入直接文件的URL在你的網頁的選擇:這在您的方案中使用Azure的驅動器有幾個優點頁面。這提供了一個blob直接訪問,而無需通過你的角色實例中的一個具有路由(其中,反過來,將假負載表示實例因爲不需要IIS)
  • 您可以選擇將個別塊私人和提供網址的私人斑點,通過共享訪問簽名
  • 您可以遠程管理個別塊,有幾個可以幫助你做到這一點的第三方工具。
  • 如果你願意,你可以使CDN(邊緣高速緩存),爲您的存儲,然後讓你點你的網址到CDN鏈接,而不是直接到源團塊。這僅限於面向公衆的斑點。
+0

感謝您的建議!我做了你所建議的任何事情。我離開了VHD的解決方案並開始使用blob容器的blob。感謝所有人的幫助! – Dhananjay 2012-04-09 10:32:04

0

那裏有一個小混亂。

Azure驅動器在技術上是一個存儲在Azure Blob存儲中的blob,因此它具有一個URL。相比之下,Azure驅動器的CONTENTS不能通過URL直接訪問。如果您想公開Azure驅動器中包含的文件,則必須使其可從Windows Azure實例訪問。

您可以通過將Azure驅動器映射爲IIS中的虛擬文件夾來安裝驅動器。如果你在.Net中編碼,看看System.Web.Administration(你必須將它包含在你的項目中,它是IIS的一部分,而不是直接在CLR中)。如果使用其他語言編碼,最簡單的方法是調用appcmd.exe來定義虛擬文件夾。

皮埃爾

+0

它是可訪問的。我的Test.VHD是我的blob。我已經將它安裝爲「A:\」。答:在其內部具有某些PDF我那麼應如何使用一些鏈接本地以及湛藍的服務器上訪問此PDF。 – Dhananjay 2012-04-06 11:32:39