使用插件 cached_network_image 在 Flutter 中缓存持续时间?

Caching duration in Flutter using the plugin cached_network_image?

我正在使用flutter插件cached_network_image:,想知道缓存文件的缓存时长是多少? 另外,是否有办法将缓存持续时间修改为 x 天?

我还想知道的是,文件是以原始文件格式缓存的还是经过转换的?例如*.HEIC -> *.JPEG

目前我只是缓存调用:CachedNetworkImage(imageUrl: snapshot.data))

或见下文....

...return FutureBuilder(
                      future: FireStorageService.downloadImageFromStorage(
                          context, snapshot.data.items[index].fullPath),
                      builder: (context, snapshot) {
                        if (snapshot.connectionState == ConnectionState.done) {
                          return GridTile(
                            child: Card(
                                child: CachedNetworkImage(imageUrl: snapshot.data)),
                          );
                        }
                        return Container();
                      },
                    );
...

在搜索有关我上述问题的答案时,我遇到了插件 flutter_cache_manager: 并看到了类型 Duration(days: 7)

如果这(使用 flutter_cache_manage:)是修改缓存持续时间的唯一方法,我该如何使用它?

有人有想法吗?

谢谢:)

CachedNetworkImage可以接收一个名为cacheManager的参数。这意味着您可以为您的 CachedNetworkImage 自定义 CacheManager 首先,您应该将 this package 添加到您的 pubspec.yaml。然后你可以添加这样的东西:

CachedNetworkImage(
  imageUrl: snapshot.data,
  cacheManager: CacheManager(
    Config(
      'cacheKey',
      stalePeriod: Duration(days: 7),
    ),
  ),
),

将持续时间替换为您想要的持续时间,并将缓存键替换为您想要的任何 String。如果需要,将其他参数添加到 Config 对象。

请注意,缓存的持续时间是从上次使用缓存文件开始算起的 7 天(在本例中),而不是从下载日期算起。