修复 SharePoint 目录列表加载缓慢 — NetDrive

阅读时间 5 分钟 troubleshooting sharepoint performance
Robin
RobinDeveloper Advocate
诊断并修复 NetDrive 挂载大型 SharePoint 文档库时目录列表加载缓慢的问题,涵盖异步列表、缓存大小与库结构。

某市场团队通过 NetDrive 挂载了一个共享的 SharePoint 文档库,方便整个团队像使用普通驱动器一样把文件拖入其中。该库已增长到十余个活动文件夹下超过 20,000 个文件,在资源管理器中打开顶层文件夹时,现在要转好几秒的加载圈才能看到内容。这并非故障——只是库已经大到需要 NetDrive 花费真实的工作量去枚举它。

NetDrive drive manager showing Google Drive, S3 and pCloud mounted as drive lettersMounted clouds appearing as native drives in Windows File Explorer

挂载 SharePoint,无需等待

NetDrive 让 Google Drive、OneDrive、S3、SFTP、WebDAV 等在 Windows 和 macOS 上显示为本地驱动器 — 无需同步,无需完整下载。

  • 面向大型文档库的异步目录列表
  • 可配置的目录缓存,最高可达 1 TB
  • 当上游文件变化时,强制刷新单个文件夹
WindowsmacOS
下载 NetDrive →

免费试用。提供终身与订阅方案。

为什么大型 SharePoint 库列表加载缓慢

SharePoint 不会像本地文件系统那样一次性把文件夹内容返回给 NetDrive——它通过 SharePoint 的 API 枚举库内容,而拥有数千个项目的库需要真实的时间和多次往返请求才能遍历完成。在 NetDrive 3.17.799(2022-11-25)之前,这一枚举过程是同步执行的:文件夹视图要等到完整列表返回后才会显示任何内容。3.17.799 专门为 SharePoint 引入了异步列表功能来解决这一问题,使文件夹可以在条目到达时就开始渲染,而不必阻塞等待整批数据。

同一时期的发布也改进了 NetDrive 呈现 SharePoint 元数据的方式——SharePoint 驱动器的配额显示在异步列表功能之前的版本 3.16.667(2022-06-30)中上线。如果你的团队在较旧的 NetDrive 版本上挂载了 SharePoint 且从未更新,那么大型库列表加载缓慢就是预期中的症状,而不是配置错误。

SharePoint provider logo — NetDrive supports SharePoint document libraries on Windows and macOS

确认你使用的版本已支持异步列表

  1. 打开 NetDrive 的 Drive Manager,在“关于”面板(或帮助菜单)中查看显示的版本号。
  2. 将其与 3.17.799 对比——任何更早的版本都不具备异步 SharePoint 列表功能。当前发布版本是 3.19.7。
  3. 如果版本落后,请从 netdrive.net/download 下载最新安装程序并重新安装;SharePoint 连接与凭据会自动保留。

NetDrive Drive Manager showing connected cloud drives including a SharePoint connection

为目录缓存留出更多空间

文件夹一旦被列出,NetDrive 就会在本地缓存该列表,这样下次访问就无需重复 SharePoint 的往返请求。缓存大小可配置——最高可达 1 TB,这一设置在 3.16.589(2022-03-31)中引入。对于拥有十余个活动文件夹、数万个文件的库来说,分配比默认值更大的缓存会更有帮助,因为可以让更多的目录树在会话之间保持“热”状态。可在 Drive Manager 中驱动器的设置里调整此项。

代价是数据可能过时:如果同事直接通过浏览器向 SharePoint 添加文件,NetDrive 对该文件夹的缓存视图不会显示这些新文件,直到缓存过期或你手动刷新。

Confirming that a connected SharePoint drive mounted successfully

强制刷新单个文件夹,而不是等待缓存过期

当你知道某个具体的活动文件夹刚在上游发生变化时,无需等待缓存过期或重启 NetDrive。在资源管理器或 Finder 中右键点击该文件夹,使用 Force folder refresh——这是 NetDrive 自 3.8.921 起就具备的功能——来重新枚举该文件夹并更新其缓存列表。

Force folder refresh menu option in NetDrive, used to re-list a single folder's contents

这会将 SharePoint 的往返请求限定在发生变化的那一个文件夹内,而不是整个库,因此即使库中其他地方有数千个项目,这一修复方式依然快速。

组织库结构以保持列表加载速度

除了版本和缓存设置外,库本身的组织方式也会影响每一个读取它的工具的列表速度,不仅仅是 NetDrive:

  • 按年份或活动拆分平铺文件夹。 一个存放多年资料的单一文件夹会迫使每次列表调用都遍历整个集合。将其拆分为 2025/2026/ 或按活动划分的子文件夹,可以让每次单独的列表调用规模更小。
  • 将已完成的活动归档到活动文件夹之外。 把已完成的工作移动到团队很少打开的独立库或文件夹树中,让团队日常浏览的文件夹保持精简。

总结

NetDrive 中 SharePoint 列表加载缓慢几乎总是版本与缓存问题,而非连接问题:确认你使用的是 3.17.799 或更高版本以获得异步列表功能,为目录缓存留出足够空间容纳整个库的目录树,并对一次性更新使用强制刷新文件夹而不是等待缓存过期。关于 SharePoint 连接本身的设置,请参阅 Mount SharePoint on Windows with NetDriveMount SharePoint on macOS with NetDrive;关于将相同的缓存机制应用于 S3,请参阅 Fix Slow S3 Directory Listing with NetDrive

— Robin, NetDrive