2016-11-07 378 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而不是存儲一樣簡單?如果用戶請求不同的圖像尺寸/設置,圖像處理如何工作? –