在Azure网站和web角色上存储和访问资源文件的建议

在Azure网站和web角色上存储和访问资源文件的建议,azure,azure-web-roles,azure-web-app-service,Azure,Azure Web Roles,Azure Web App Service,我有一个网站,需要访问文件系统(或其他地方)上的文件,其中包含一些用于发送电子邮件的模板文本。我想就azure web角色和azure web站点的在哪里存储文件以及如何在运行时访问/查找文件提出建议 到目前为止,我已经了解了Azure本地存储,但这似乎只是web角色的一种选择,而不适用于Azure网站(我想是吧?)。另外,我不确定该文件将如何进入存储 我考虑的另一个选项是将文件添加到VS解决方案中,并将其标记为内容,在这种情况下,我相信它将与其他文件一起部署。但是在这种情况下,我不知道如何从.

我有一个网站,需要访问文件系统(或其他地方)上的文件,其中包含一些用于发送电子邮件的模板文本。我想就azure web角色和azure web站点的在哪里存储文件以及如何在运行时访问/查找文件提出建议

到目前为止,我已经了解了Azure本地存储,但这似乎只是web角色的一种选择,而不适用于Azure网站(我想是吧?)。另外,我不确定该文件将如何进入存储

我考虑的另一个选项是将文件添加到VS解决方案中,并将其标记为内容,在这种情况下,我相信它将与其他文件一起部署。但是在这种情况下,我不知道如何从.NET代码中获取访问文件的路径。另外,有了这个,我相信我需要重新部署整个解决方案以更新文件


如果你能想到这一点,我将不胜感激。谢谢…

使用非本地存储系统是您最好的方法,您的速度要求不太可能达到如此高的程度,因此需要大力提高性能

我建议blob存储与您的网站/云服务位于同一区域

如果您的负载非常大,并且需要快速加载该文件,请将内存缓存设置为5分钟或更低的时间来存储模板。每次检查缓存时,如果它不在缓存中,则从存储加载到缓存中,然后提供资源

如果每秒获得1个或更高的恒定请求,可以考虑使用缓存。任何低于此值的数据,只要坚持直接从blob存储器按需读取即可

如果你真的想在本地从磁盘上获取一些东西,那么就这样做

Server.MapPath("~/YourFolder/YourFile.ext")

您可能会使用blob存储来存储文件,并从那里下载文件,并在需要时在本地存储。正如Gaurav所提到的,最初将其放在Azure存储上,并在需要时在本地下载,正如这里所提到的:但它不是可以更快地访问(并且可能更高效地访问)吗如果存储在本地文件系统上?感谢您的帮助。那么,出于好奇,(在您看来)什么时候应该使用Azure本地存储?您能简单介绍一下实现您建议的内存缓存系统的策略吗?看起来这是一个如何缓存web api的示例:这是内存缓存的一个很好的示例:本地存储主要用于临时工作文件。本地存储仅针对每个实例,因此通常仅用于启动任务或工作文件空间,前提是该实例上有一个长时间运行的流程或类似的内容,但不需要与流程中的任何其他实例通信。