flutter_cache_manager
一个 CacheManager,用于在应用的缓存目录中下载和缓存文件。可以更改文件保留时长等各种设置。
它使用 cache-control http 标头来高效地检索文件。
用法
var cacheManager = await CacheManager.getInstance();
var file = await cacheManager.getFile(url);
设置
CacheManager 的一些设置可以更改。
所有这些偏好设置都是静态的,应该在第一次使用 CacheManager 之前设置,所以最好直接在您的应用程序启动时设置。
要进行额外的日志记录,请设置
CacheManager.showDebugLogs = true;
缓存可以在使用以获取文件后进行清理。默认情况下,这每周发生一次。您可以通过设置 inBetweenCleans 来更改此设置。
CacheManager.inBetweenCleans = new Duration(days: 7);
CacheManager 会检查两件事:过期的对象和缓存的大小。
默认情况下,它会移除 30 天内未使用的对象。通过 maxAgeCacheObject 进行设置。*这与对象首次下载的时间无关,而是与最后一次使用对象的时间有关。
CacheManager.maxAgeCacheObject = new Duration(days: 30);
默认情况下,缓存大小设置为 200,当缓存超过此大小时,它将根据最后使用时间再次删除最旧的对象。通过 maxNrOfCacheObjects 进行设置。
CacheManager.maxNrOfCacheObjects = 200;
工作原理
缓存的文件存储在应用程序的临时目录中。这意味着操作系统可以随时删除这些文件。
文件信息存储在共享偏好设置中,键为“lib_cached_image_data”。(因为图片是此库的首次使用:)) 缓存最后清理的日期存储为“lib_cached_image_data_last_clean”。
此缓存信息包含文件有效的截止日期以及 http cache-control 要使用的 eTag。