You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何批量导出浏览器CacheStorage中的网站缓存文件?

最简单的批量导出Service Worker缓存文件的方法

我之前碰到过几乎一模一样的情况,用Chrome DevTools的控制台写几行代码就能快速搞定批量导出,完全不需要复杂工具,步骤如下:

  1. 打开目标网站并确认缓存存在
    打开Chrome访问你的网站(必须是该域名下的页面,保证能访问到对应的Service Worker缓存),按F12打开开发者工具,切换到Application标签页,在左侧菜单找到Cache Storage,展开后确认能看到你的缓存容器(比如类似my-site-cache-v2这样的名称),把这个名称记下来。

  2. 在控制台执行批量下载代码
    切换到Console标签页,把下面的代码粘贴进去,记得把CACHE_NAME替换成你刚才记下的缓存容器名称:

    const CACHE_NAME = '替换成你的缓存名称';
    // 打开指定缓存
    const cache = await caches.open(CACHE_NAME);
    // 获取缓存里的所有请求条目
    const cachedRequests = await cache.keys();
    
    // 遍历每个条目并下载
    for (const request of cachedRequests) {
      const response = await cache.match(request);
      const fileBlob = await response.blob();
      // 创建临时下载链接
      const downloadUrl = URL.createObjectURL(fileBlob);
      const linkElement = document.createElement('a');
      linkElement.href = downloadUrl;
      // 从请求URL中提取文件名
      const urlPath = new URL(request.url).pathname;
      linkElement.download = urlPath.split('/').pop() || `cache-file-${Date.now()}`;
      // 触发下载
      document.body.appendChild(linkElement);
      linkElement.click();
      // 清理临时元素和链接
      document.body.removeChild(linkElement);
      URL.revokeObjectURL(downloadUrl);
    }
    
  3. 确认批量下载权限
    如果缓存里有大量文件,Chrome会弹出“此网站尝试下载多个文件”的提示,直接点击“允许”即可,文件会自动批量保存到你的默认下载目录。

小提示

  • 如果部分文件名提取异常(比如URL里没有明确文件名),可以修改代码里linkElement.download的赋值逻辑,比如手动指定前缀或者根据文件类型补充后缀。
  • 确保代码在你网站的页面上下文执行,跨域页面无法访问该域名的CacheStorage。

内容的提问来源于stack exchange,提问作者lucas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 08:10:59