Caching Azure网站的临时存储

Caching Azure网站的临时存储,caching,azure,azure-storage,azure-web-app-service,temporary,Caching,Azure,Azure Storage,Azure Web App Service,Temporary,我想缓存一些裁剪过的图像,并在Azure网站上提供它们,而无需再次计算它们。当我使用Azure VM时,我只是将它们存储在D驱动器(临时驱动器)上,但现在我不知道将它们存储在哪里 我可以使用Path.GetTempPath,但我不确定这是否是最好的方法 当我从Azure网站提供服务时,您能建议我将临时文件存储在哪里吗?您可以将处理后的内容存储在Azure Blob存储上,并从那里提供内容。Azure网站还附带临时文件夹。路径在环境变量%TEMP%中定义,如果您真正想要的是缓存,您也可以使用Azu

我想缓存一些裁剪过的图像,并在Azure网站上提供它们,而无需再次计算它们。当我使用Azure VM时,我只是将它们存储在D驱动器(临时驱动器)上,但现在我不知道将它们存储在哪里

我可以使用
Path.GetTempPath
,但我不确定这是否是最好的方法


当我从Azure网站提供服务时,您能建议我将临时文件存储在哪里吗?

您可以将处理后的内容存储在Azure Blob存储上,并从那里提供内容。

Azure网站还附带临时文件夹。路径在环境变量%TEMP%

中定义,如果您真正想要的是缓存,您也可以使用Azure Redis缓存查看

您可以将图像存储在应用程序根目录下的App_Data文件夹中,也可以使用Azure CDN进行缓存。

您可以使用Path.GetTempPath()和Path.GetTempFileName()函数作为临时文件名,但空间有限,因此,如果您对每个请求执行10K存储,并且期望每个服务器一次保存100000个请求,那么blob存储可能更好

下面的示例演示如何在azure中保存临时文件,包括Path和Bolb

医生在这里:

代码单击此处:

Blob存储是永久存储,我需要一些临时存储,这样它可以偶尔回收一次,而不必自己回收。你可以每天将它们存储在一个新容器中,然后“自己回收”将只是删除昨天的容器。如果您想要完全自动过期,那么您需要一个缓存解决方案(比如使用自动密钥过期的azure redis缓存,或者CDN负责过期过时内容的CDN)。当您使用Azure VMs时,您是如何管理过期的?我将在Azure Blob存储中为此场景实施过期缓存机制。这是存储图像最安全、最经济的方法。这与
Path.GetTempPath
相同。我不知道它长大后会有什么反应。当它增长并填满90%的存储空间时会发生什么?它是偶尔回收一次,还是会一直保存到删除?@MenelaosVergis临时文件夹是您正在使用的虚拟机上的一个物理文件夹。如果我没记错的话,您可以在其中存储高达50GB的数据,一旦数据填满,您就可以摆脱存储异常。但这是有代价的。由于临时文件夹位于同一台物理机器上,因此如果机器停机或您的站点因任何原因移动到另一台机器,则会丢失临时文件夹中的所有内容。您应该承认您可以随时释放该文件夹的内容(例如,如果您放大或缩小,您将更改机器并释放该数据),您是对的,您还应该知道,可以从运行在同一虚拟机上的所有站点访问此临时文件夹,这可能会导致安全问题。@MenelaosVergis不正确,您可以自己测试。在同一个Web托管计划中创建两个站点。将其更改为基本模式,并将其缩放为一个实例。这两个站点现在将在同一个VM上运行。将一些文件添加到一个站点的临时文件夹,然后查看是否可以从另一个站点查看它们。你将看不到它们这是用于裁剪的图像,Redis缓存中大存储的价格将是无法承受的,无论如何,感谢我有类似的项目,只是用于动态调整图像大小,也许它会对你感兴趣()我使用CDN进行缓存,因为它既便宜又耐用。