ImageResizer - 需要删除图像缓存中的图像

ImageResizer - Need to remove images that are in the image cache

我将 ImageResizer 工具与 DiskCache 插件一起使用。我们使用 Azure blob 存储来存储图像,并使用自定义插件在调整器代码中提供这些图像。出现问题,一些 blob 已被删除,但缓存在调整器的 DiskCache 中。

我需要能够构建哈希键才能识别缓存中的图像。我尝试根据我在代码中看到的内容构建密钥,但返回的字符串不会在缓存中生成文件

var vp = ResolveAppRelativeAssumeAppRelative(virtualPath);
var qs = PathUtils.BuildQueryString(queryString).Replace("&red_dot=true", "");

var blob = new Blob(this, virtualPath, queryString);
var modified = blob.ModifiedDateUTC;

var cachekey = string.Format("{0}{1}|{2}", vp, qs, blob.GetModifiedDateUTCAsync().Result.Ticks.ToString(NumberFormatInfo.InvariantInfo));

var relativePath = new UrlHasher().hash(cachekey, 4096, "/");

如何查询缓存以查看图像是否仍在缓存中,如果图像不存在于 blob 存储帐户中,则将其删除?

注意:我已经尝试使用 AzureReader2 插件,但它目前对我们不起作用。

自定义插件负责控制对缓存文件的访问。

如果您想查看活动请求的缓存位置,请在请求的 EndRequest 阶段查看 HttpContext.Current.Items["FinalCachedFile"]。您可以使用事件处理程序来执行此操作。