2016-11-07 108 views
0

我使用ImageResizer作为Azure Web应用程序,并带有50 Gb文件存储的服务计划。我的DiskCache设置是:Imageresizer缓存Azure存储配额限制

<diskcache dir="~/imagecache" autoclean="true" hashModifiedDate="true" subfolders="1024" asyncWrites="true" asyncBufferSize="10485760" cacheAccessTimeout="15000" logging="true"/> 

但这似乎并没有阻止imagecache文件夹很快达到50 Gb的限制。我在BLOB存储(原始大小)中有大约100 Gb的图像,并非所有图像都会在同一天使用,但是同一图像可能会多次使用不同的参数进行缓存。缓存的图像平均大约200Kb ?.

有没有办法阻止存储填满这么快?有没有更好的方法来使用DiskCache?或使用别的东西?使用250Gb和体面CPU/RAM的Premium计划太昂贵,无法为此付出代价。

感谢

回答

1

你不能限制由文件大小的缓存,只有一个(非常)粗略计数。假设平均值为200kb,那么删除缓存并设置子文件夹=“256”应该使您保持在50GB以下。

...但是,如果您的缓存“快速”填满(如1-3天),那么您可能会遇到严重的缓存流失和性能下降,因为您的磁盘写入队列空空如也。

如果您无法获得10天的缓存文件的存储空间,那么可以考虑使用CDN。

+0

看着CDN,但Azure不支持SSL绑定 –

+1

我会建议除Azure CDN之外的其他任何东西。 –

+0

感谢Nathanael为此。 Azure现在在其CDN中添加了对自定义域SSL绑定的支持。是否像我的图像域指向cdn而不是存储一样简单?如果用户请求不同的图像尺寸/设置,图像处理如何工作? –