2015-03-19 7 views
4

Использование ImageResizer для изменения размера загружаемых пользователем файлов на лету.ImageResizer: Удалить кешированное изображение (Diskcache и SqlReader)

Когда файл удаляется в базе данных (строка удалена), как исходная, так и измененная версии все еще доступны в течение некоторого времени, пока не будет выполнено расписание очистки.

В случае авторского права, порно и т.д., есть способ, чтобы DiskCache знать, что файл был удален и заставить файл должен быть удален из кэша сразу?

Я думаю, что это может быть разрешено IVirtualFileWithModifiedDate, но не требовалось ли запрашивать db для каждого запроса, а не просто обрабатывать его во время удаления?

Немного напоминает:

DAL.DeleteImage(ImageID); 

DiskCachePlugin.Invalidate(ImageID); 
+0

Привет, вы нашли решение? – genichm

ответ

1

При удалении файла в базе данных (строка удалена), и оригинал и змененный версии по-прежнему доступны в течение некоторого времени, пока график очистки не будет сделано.

ImageResizer не разрешает доступ к кешированным версиям после того, как он знает, что оригинал недоступен. Тем не менее, некоторые метаданные существования (например, Sql и S3) для провайдеров (например, Sql и S3) для скользящего окна (с минимальным значением 1 час), что может привести к поведению, которое вы видите. в V4 вы можете отключить это кэширование метаданных, чтобы обеспечить немедленный аннулирование доступа.