使用ImageResizer
动态调整用户上传的文件大小。
当在数据库中删除文件(删除行)时,原始版本和调整大小的版本仍可访问一段时间,直到清理计划完成。
如果是版权,色情等,有没有办法让DiskCache
知道该文件已被删除,并立即强制将文件从缓存中删除?
我认为它可以通过IVirtualFileWithModifiedDate
来解决,但是它不需要在每个请求上查询db而不是仅仅在删除时处理它吗?
有点像:
DAL.DeleteImage(ImageID);
DiskCachePlugin.Invalidate(ImageID);
答案 0 :(得分:1)
当在数据库中删除文件(删除行)时,原始版本和调整大小的版本仍可访问一段时间,直到清理计划完成。
ImageResizer一旦知道原始版本不可访问,就不允许访问缓存版本。也就是说,一些提供程序(如Sql和S3)缓存滑动窗口的存在元数据(最少1小时),这可能会导致您看到的行为。在V4中,您可以禁用此元数据缓存以确保立即撤消访问。