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

问题描述 投票:0回答:1

我将ImageResizer工具与DiskCache插件一起使用。我们使用Azure blob存储来存储图像,并使用自定义插件在resizer代码中提供这些图像。有些东西出了问题,有些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插件,目前它不适用于我们。

c# image-resizing imageresizer
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.