2012-04-05 105 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