C# VHD驱动器的服务器路径

C# VHD驱动器的服务器路径,c#,azure-storage,C#,Azure Storage,我想获取VHD驱动器的服务器路径。我正在开发azure web应用程序。我上传了一些文件,并将其保存到Test.VHD驱动器(例如)。这是一些blob容器“驱动器”(例如)中的云驱动器。我通过以下方式安装并映射它: driveLetter = drive.Mount(localCache.MaximumSizeInMegabytes - 20, DriveMountOptions.Force); “driveLetter”是“A:\”(比如说)。现在,我将所有pdf文件名显示为页面上的链接按钮

我想获取VHD驱动器的服务器路径。我正在开发azure web应用程序。我上传了一些文件,并将其保存到Test.VHD驱动器(例如)。这是一些blob容器“驱动器”(例如)中的云驱动器。我通过以下方式安装并映射它:

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”。但我不能通过。我必须像这样传递它,以便用户可以查看它

但我不知道如何将其转换为类似的链接。通过这样做,我可以在浏览器中查看pdf

请帮帮我


提前谢谢。

这里有点混乱

azure驱动器在技术上是存储在azure blob存储中的blob,因此它有一个URL。相反,Azure驱动器的内容不能通过URL直接访问。如果要公开Azure驱动器中包含的文件,必须使其可从windows Azure实例访问

您可以通过在装载驱动器时将Azure驱动器映射为IIS中的虚拟文件夹来完成此操作。如果您在.Net中编写代码,请查看System.Web.Administration(您必须将其包含在项目中,它是IIS的一部分,而不是直接包含在CLR中)。如果使用其他语言编写代码,最简单的方法是调用appcmd.exe来定义虚拟文件夹


皮埃尔

我知道这并不能直接回答你的问题,但是。。。我认为,通过向Azure驱动器写入内容,您将看到一些限制:

  • 在任何给定时间,只有一个角色实例可以对vhd进行写访问。这意味着您的解决方案可以扩展到一个实例之外,除非每个实例都有唯一的vhd(或者每个add'l实例只是创建一个只读快照)
  • 现在,您必须通过角色实例访问各个文件,因为您无法提供指向vhd内部文件和外部世界的直接链接
  • 要管理任何文件,必须安装Azure驱动器。这意味着您无法从Windows Azure之外的代码管理任何文件(Azure驱动器仅可由Windows Azure角色实例装载)
我建议将单个文件写入单个blob。与在您的场景中使用Azure驱动器相比,这有几个优点:

  • 任何实例都可以读/写每个单独的文件(每个文件位于单独的blob中)
  • 您可以选择在网页中嵌入直接文件url。这提供了对blob的直接访问,而无需通过您的角色实例之一进行路由(由于不需要IIS,这反过来会减轻所述实例的负载)
  • 您可以选择将单个blob设置为私有,并且仍然通过共享访问签名向私有blob提供url
  • 您可以远程管理单个blob,并且有多个第三方工具可帮助您做到这一点
  • 如果愿意,可以为存储启用CDN(边缘缓存),这样可以将URL指向CDN链接,而不是直接指向源blob。这仅限于面向公众的斑点

它是可访问的。我的Test.VHD是我的blob。我已将其安装为“A:\”。答:里面有一些pdf文件,所以我应该如何使用本地和azure服务器上的链接访问此pdf文件。谢谢你的建议!!我照你的建议做了。我离开了VHD的解决方案,开始使用带有blob容器的blob。谢谢大家的帮助!!