darktable 怎样为离线编辑创建本地副本
来源:17golang原创
时间:2026-10-30 18:15:16 173浏览 收藏
照片放在外置硬盘或 NAS 上时,直接拔掉存储设备会让原片暂时不可访问。darktable 的解决方案是为选中的照片创建 local copy:副本留在本机缓存目录,外置存储断开后仍可继续编辑;存储恢复后,再把本地 XMP 侧车同步回去并清理副本。
官方手册:https://docs.darktable.org/usermanual/development/en/
最短操作路径是:Lighttable 选中照片 → actions on selection → images → copy locally。完成后先看缩略图右上角的白色标记,再模拟断开外置存储确认照片仍能打开。
一、先确定要带走的编辑范围
打开 darktable 的 Lighttable 视图,按集合、胶卷或缩略图选择准备离线处理的照片。建议只选择本次旅途中确实要处理的一组,避免把整个图库都复制到本机。这里复制的是照片文件以及 darktable 需要的编辑关联信息,目标是让这批照片在原存储不可用时仍有工作副本。
选中后先检查缩略图数量和文件类型。需要保留的照片应处于明确的选中状态;如果误把不需要的照片一起选中,后面的 copy locally 会扩大本地缓存占用。
二、从 actions on selection 创建本地副本
在 Lighttable 中打开 actions on selection 模块,切换到 images 标签。找到 copy locally,执行一次即可。不要把这里的 copy 与 copy locally 混用:前者是把文件复制到指定文件夹,后者是登记为 darktable 的离线本地副本。

点击后,darktable 会把选中照片的本地副本放到 cache directory,而不是让读者手工猜测缓存路径。官方手册说明,本地副本的文件名包含原路径的 MD5 签名,并保留原始扩展名,因此不要直接改名或手动搬动缓存目录中的文件。
三、断开存储前核对可用状态
创建结束后回到缩略图区域,观察照片右上角是否出现白色标记。这个标记表示该照片存在 local copy;同时,darktable 会给这些副本加上 darktable|local-copy 标签,后续可以用标签快速筛选它们。
这一步不要只看“操作没有报错”。随机打开一张照片进入 Darkroom,确认编辑历史和预览仍可用,再断开外置硬盘或让 NAS 暂时不可达。如果照片仍能进入编辑视图,才说明离线工作路径已经建立。

四、存储恢复后同步并清理
重新连接原来的外置存储后,darktable 会在启动时自动同步本地 XMP 侧车;也可以在 actions on selection 的 images 标签中选中这些照片并点击 resync local copy。该动作会把本地副本的 XMP 侧车同步到外部存储,然后移除本地副本。
如果本地副本已经修改,但外部存储仍不可访问,darktable 不会删除这个本地副本。遇到这种情况不要反复点击清理按钮,先恢复存储连接,确认原片和 XMP 可写,再执行同步。同步后重新打开一张照片,检查编辑历史是否保留,最后再用 darktable|local-copy 标签确认待清理数量。
常见问题与边界
本地副本和普通文件复制有什么区别?
普通 copy 是把文件复制到指定文件夹;local copy 是 darktable 为离线访问维护的副本,并配合 XMP 同步、白色状态标记和专用标签。需要在 darktable 内继续编辑并回写原存储时,应使用 copy locally。
为什么外置硬盘未连接时不能立刻 resync?
resync local copy 需要把本地 XMP 写回外部存储。目标存储不可访问时没有安全的同步目标,因此应保持本地副本,等设备恢复后再同步。
最后验收清单
- 选中的照片右上角出现白色本地副本标记。
- 外置存储暂时不可用时,照片仍能在 Darkroom 打开并继续编辑。
- 存储恢复后使用自动同步或 resync local copy,确认 XMP 已回到原存储。
- 同步完成后再确认 local copy 副本已被清理。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
348 收藏
-
427 收藏
-
455 收藏
-
364 收藏
-
243 收藏
-
197 收藏
-
407 收藏
-
491 收藏
-
268 收藏
-
418 收藏
-
126 收藏
-
207 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习