我正在使用Azure文件为我的Web应用程序存储文件,我之前在这里提到过。
我目前正在处理一个目录中的文件/子目录,并输出一个导航表,这样用户就可以导航到子目录中,最终获得所述文件。我通过使用这篇Azure文档文章的"以编程方式访问文件共享"部分中描述的方法来实现这一点。
我的问题很简单,我如何从我的Web应用程序在Azure应用程序服务中运行,如果用户可以下载/查看该文件吗?
请注意,我更希望该文件是而不是自动下载的,因为大多数文件都是.PDF
,因此可以在浏览器中预览。
我的问题很简单,我如何从我的Web应用程序在Azure应用程序服务中运行,提供用户可以使用的公共URL下载/查看文件?
一种可能的解决方案是在至少具有Read
权限的文件上创建Shared Access Signature (SAS)
,并使用该SAS URL。根据文件的内容类型,文件的内容将在线显示在浏览器中,或者提示用户下载文件。如果要强制下载,可以始终覆盖SAS中的Content-Disposition
响应标头。
使用共享访问签名(SAS)可能是一种解决方案,但在给定的场景中,这可能有些过头了。
在所提供的场景中,具有公共访问权限的Blob存储是存储文件的最实用的方式。来自文件:
您可以指定容器及其blob或特定blob可用于公共访问。当您指示容器或blob是公共的时,任何人都可以匿名阅读;不需要身份验证。公共容器和Blob对于公开网站上托管的媒体和文档等资源非常有用。为了减少全球受众的网络延迟,您可以使用Azure CDN缓存网站使用的blob数据。
https://azure.microsoft.com/en-us/documentation/articles/storage-introduction/
要从Azure门户设置容器权限,请执行以下步骤:
- 导航到存储帐户的仪表板
- 从列表中选择容器名称。单击名称将显示所选容器中的Blob
- 从工具栏中选择访问策略
- 在访问类型字段中,选择"Blob"