如何获取Azure Files文件的公共URL?

时间:2015-12-23 01:07:20

标签: asp.net-mvc azure azure-storage azure-web-sites azure-storage-files

我使用Azure文件存储我的Web应用程序的文件,我之前提到过here

我目前正在处理目录中的文件/子目录,并输出导航表,以便用户可以导航到子目录,最后获取所述文件。我是通过使用this Azure Documentation article中“以编程方式访问文件共享”部分中描述的方法执行此操作。

  

我的问题很简单,我怎样才能从我的Web App中获取   在Azure应用服务中运行,用户提供公共网址   可以下载/查看文件吗?

请注意,我希望文件自动下载,因为大多数文件都是.PDF,因此可以在浏览器中预览。

2 个答案:

答案 0 :(得分:3)

  

我的问题很简单,我怎样才能从我的Web App中获取   在Azure应用服务中运行,提供用户可以使用的公共URL   下载/查看文件?

一种可能的解决方案是在至少具有Shared Access Signature (SAS)权限的文件上创建Read并使用该SAS URL。根据文件的内容类型,文件的内容将在浏览器中内嵌显示,或者提示用户下载文件。如果要强制下载,可以始终覆盖SAS中的Content-Disposition响应标头。

答案 1 :(得分:3)

使用共享访问签名(SAS)可能是一种解决方案,但在给定方案中可能是一种过度杀伤力。

在提供的方案中,具有公共访问权限的Blob存储是存储文件的最实用方法。来自文档:

  

...您可以指定容器及其blob或特定blob可用于公共访问。当您指出容器或blob是公共的时,任何人都可以匿名阅读它;无需身份验证。公共容器和blob对于公开托管在网站上的媒体和文档等资源非常有用。要减少全局受众的网络延迟,可以使用Azure CDN缓存网站使用的blob数据。

https://azure.microsoft.com/en-us/documentation/articles/storage-introduction/

要从Azure门户设置容器权限,请按照下列步骤操作:

  1. 导航至存储帐户的信息中心。
  2. 从列表中选择容器名称。单击该名称会显示所选容器中的blob
  3. 从工具栏中选择访问策略。
  4. 在“访问类型”字段中,选择“Blob”