ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Ente Photos 桌面端 Watch folders 监控文件夹:端到端加密的自动化照片备份指南

2026/9/12 7:32:34 拓冰建站 浏览量
Ente Photos 桌面端 Watch folders 监控文件夹:端到端加密的自动化照片备份指南 Ente Photos 桌面端 Watch folders 监控文件夹端到端加密的自动化照片备份指南【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente监控文件夹Watch folders是 Ente Photos 桌面应用提供的一项自动化备份能力选中本地某个文件夹后应用会在后台持续监听其中的新增文件与删除操作并将新增文件自动上传到对应的 Ente 相册。本文基于 watch-folders.md 文档并结合仓库内桌面端源码desktop/src/main/services/watch.ts、desktop/src/main/stores/watch.ts等深入讲解该功能的完整用法、嵌套文件夹处理逻辑、后台同步机制与注意事项。读完本文你将能独立配置监控文件夹、理解其单向上传的工作原理并规避双向同步等常见误用场景。什么是 Watch foldersWatch folders 是 Ente 桌面端desktop/内置的一项单向后台同步功能你指定电脑上的一个或多个文件夹Ente 应用就会初始全量上传首次配置时把文件夹中已有的文件全部上传到对应的 Ente 相册持续监听变更之后持续监听该文件夹凡是新增的文件都会被自动上传处理本地删除如果本地文件被删除云端对应的 Ente 文件会被自动移动到未分类uncategorized中而不是直接删除云端数据从而避免误删。从源码结构看这一功能由主进程中的文件系统监听器驱动createWatcherdesktop/src/main/services/watch.ts#L9-L33在应用启动时基于 chokidar 中可以看到该监听器随应用窗口一起创建const watcher createWatcher(mainWindow); attachFSWatchIPCHandlers(watcher); attachLogoutIPCHandler(watcher);也就是说只要 Ente 桌面端在运行即使界面最小化、或关闭窗口仅驻留后台监控与同步都会持续进行。设置监控文件夹逐步操作原文档给出了完整的操作流程这里结合源码逐一说明在桌面端侧边栏sidebar点击Watch folders按钮会弹出管理对话框可在此添加或移除被监控的文件夹点击Add folder按钮在系统中选择想要监听的文件夹也可以直接把文件夹拖拽到该对话框中完成添加如果所选文件夹包含嵌套子目录会出现A single album单个相册与Separate albums独立相册两个选项详见下文嵌套文件夹的处理选择完成后文件夹会先执行一次初始同步上传到 Ente 云端随后进入持续监听状态此时可以关闭对话框同步会在后台继续后台同步进行时应用右下角会显示一个小的进度状态条点击可展开查看更详细的信息若要停止监听某个文件夹点击该条目右侧的三个点⋯菜单选择Stop watching即可。在上述界面操作背后源码层面对应着一组清晰的 IPC 调用链desktop/src/main/ipc.ts#L308-L332渲染进程调用IPC handler底层实现作用watchGet()watchGetwatchGet(watcher)读取全部监控条目并检查目录是否可访问不可访问时暂停监听watchAdd(folderPath, collectionMapping)watchAddwatchAdd(watcher, folderPath, collectionMapping)新增一个监控文件夹并立即加入 chokidar 监听watchRemove(folderPath)watchRemovewatchRemove(watcher, folderPath)移除监控并unwatch该目录watchUpdateSyncedFiles(...)watchUpdateSyncedFileswatchUpdateSyncedFiles(syncedFiles, folderPath)记录某个文件夹已成功上传的文件列表watchUpdateIgnoredFiles(...)watchUpdateIgnoredFileswatchUpdateIgnoredFiles(ignoredFiles, folderPath)记录被忽略无需上传的文件列表其中添加操作在 watch.ts#L72-L106 中有三个关键约束目标路径必须是一个真实存在的目录fsIsDir校验同一路径不允许重复添加新增条目包含folderPath、collectionMapping目标相册映射、syncedFiles、ignoredFiles四个字段。监控状态如何持久化watch-status 存储监控配置并不会因为退出应用而丢失它被持久化在本地。从 desktop/src/main/stores/watch.ts 可以看到桌面端使用electron-store创建了一个名为watch-status的存储其 schema 定义如下interface WatchStore { mappings?: FolderWatch[]; }每个FolderWatch对象包含collectionMappingstring该文件夹对应的 Ente 相册映射folderPathstring被监控的本地文件夹绝对路径syncedFiles数组已同步文件列表每项记录path、uploadedFileID、collectionID用于实现增量同步——已上传的文件不会重复上传ignoredFiles数组被忽略的文件路径列表。这一设计与初始全量上传 后续增量监听的机制是配套的syncedFiles让应用在重启后也能知道哪些文件已经上传完毕从而避免重复上传ignoredFiles则用来记录因格式不支持、损坏等原因被跳过的文件。嵌套文件夹的处理单个相册还是独立相册当被监控的文件夹内部还有嵌套子目录时桌面端会像拖拽上传嵌套文件夹一样提供两个选项原文档明确指向了相册组织文档的对应章节 albums.md#preserving-folder-structureA single album单个相册所有嵌套子目录中的文件全部汇入同一个 Ente 相册不保留目录层级Separate albums独立相册每个嵌套子目录在云端创建一个独立的 Ente 相册。需要特别说明同样来自 albums.md#L205-L212Ente 相册本身不支持嵌套因此独立相册模式下每个嵌套子文件夹都会成为一个顶层相册而不会在云端形成树状层级。选择哪种方式取决于你希望云端如何组织这批照片如果只是想要一个统一的相机胶卷式备份选单个相册即可如果希望保持本地的目录结构便于检索则选独立相册。后台同步与并发行为配置完成后同步在后台持续进行并有以下值得注意的行为均来自原文档与源码后台进度提示同步中会在界面右下角显示小型进度状态可展开查看详情上传会暂时抢占同步原文档明确提示——如果在一次监控同步进行中你又发起了新的手动上传那么监控同步会先暂停待手动上传完成后再恢复。这是为了避免同一时刻多个上传任务争抢资源导致冲突关闭窗口不中断从 desktop/src/main.ts#L35 的注释可以看到应用正常关闭只是隐藏窗口以便导出与文件夹监听继续运行即关闭主窗口后监控同步仍会在后台执行配合开机自启动可实现全自动备份桌面端支持设置随系统启动自动运行 Ente实现见 desktop/src/main/services/auto-launcher.ts将开机自启 监控文件夹组合起来即可实现无需任何人工干预的自动化云端备份目录暂时不可用时的处理watchGet会检查每个被监控目录是否可访问fsIsDir目录不可访问时会unwatch暂停监听恢复可访问后再重新addwatch.ts#L47-L65。这为移动硬盘未挂载、网络驱动器暂时离线等场景提供了容错平台差异由于 chokidar v4 在 macOS 上会出现文件描述符耗尽的问题chokidar#1385退出登录时清理用户注销时所有文件监听会被统一重置watchReset见 logout.ts#L10-L39 与 ipc.ts#L334-L335。重要限制不支持双向同步原文档特别强调了一个容易踩坑的限制目前 watch folders 不支持双向同步2-way sync。如果试图把 Ente 导出的数据放回到同一个正被监控的文件夹中会触发未定义行为undefined behaviour例如出现重复文件、导出停滞等。原因从机制上也不难理解监控器只会把新增文件上传 本地删除后云端文件移入未分类这一单向流程自动执行而导出产生的文件再次落回被监控目录又会触发新的上传形成循环或重复。因此使用该功能时应遵循监控文件夹专用于单向备份把照片统一放入监控目录云端相册作为备份目标不要将导出目录设为监控目录导出请选择独立的、未被监控的目录不要在监控目录内手动放置云端导出/下载的内容以免触发未定义行为。常见问题FAQ速查围绕该功能官方文档还整理了以下常见问题可作为排障参考对应 FAQ 页面在仓库 docs 目录中未收录此处仅列问题主题什么是监控文件夹如何设置监控文件夹能否同时监控多个文件夹可以——源码中mappings本身就是一个数组支持多个条目并存从监控文件夹删除文件后会发生什么云端对应文件会移入未分类而非被删除为什么监控文件夹没有同步可检查目录是否可访问、是否有新上传抢占、目标路径是否真实存在能否监控网络驱动器NAS源码会定期校验目录可访问性网络驱动器能否稳定工作取决于其挂载与可用性监控文件夹能否保留嵌套目录结构可以通过独立相册选项但云端相册之间仍是平级关系能否用监控文件夹做双向同步不支持见上文小结Watch folders 是 Ente Photos 桌面端把端到端加密备份自动化的关键特性一次配置、后台常驻、增量上传、删除安全化移入未分类。配合开机自启即可实现全自动的云端照片备份。需要再次强调的边界是这是一个单向同步方案切勿把导出数据写回被监控目录。若想了解嵌套文件夹上传在普通拖拽场景下的更多细节可进一步阅读 albums.md#preserving-folder-structure若想深入源码建议从 desktop/src/main/services/watch.ts 与 desktop/src/main/stores/watch.ts 开始阅读。【免费下载链接】ente End-to-end encrypted cloud for everything.项目地址: https://gitcode.com/GitHub_Trending/en/ente创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考