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