Search code examples
imageresizer

How to configure cache folder for SourceDiskCache?


I understand from the documentation that the SourceDiskCache folder cannot be configured using the XML configuration file and is only available "through code installation". However I can't figure out how!

I need to configure a custom folder. I have tried a few different things, with different results (both in Application_Start):

  1. This doesn't throw an error, but uses the default folder (/cache)

    var sourceDiskCachePlugin = new SourceDiskCachePlugin {VirtualCacheDir = "~/App_Data/cache"};
    Config.Current.Plugins.GetOrInstall(sourceDiskCachePlugin);
    
  2. This (and most other variations I have tried) throws the error "SourceDiskCache settings may not be adjusted after it is started."

    new SourceDiskCachePlugin().Install(Config.Current);
    Config.Current.Plugins.Get<SourceDiskCachePlugin>().VirtualCacheDir = "~/App_Data/cache";
    

How can I configure this?

Also, the documentation states that SourceDiskCache is in beta - is this still the case, and will XML configuration ever be available?


Solution

  • This would be the normal way to configure and install it: var plugin = new SourceDiskCachePlugin() plugin.VirtualCacheDir = "~/App_Data/cache"; plugin.Install(Config.Current);

    If your code is running more than once, use Config.Current.Plugins.GetOrInstall(plugin); It's best if you only install the plugin during Application_Start.

    However, approach #1 from your question should work equally well, as long as you've set the right NTFS permissions on App_Data.