使用 ImmiBridge 将我的 iCloud 照片迁移到自有存储中
我一直让 伊米奇 在我的 Unraid 服务器上运行,它更多地像个“总有一天我会真正用上它”的项目。直到我发现了 Immi桥——一款专为从 Apple Photos 中提取照片并推送到自托管的 Immich 实例而打造的 macOS 应用,这一天终于到来了。
项目的由来
苹果掌握着我整个相册,那是几十年的积累,全都存放在 iCloud 里——一个我无法掌控的地方(除了确保每月自动扣款都能顺利通过)。
我把照片同时备份到 Google Photos 和 iCloud,但其实更希望这些数据也能在我的服务器上有一份副本。ImmiBridge 就是为此而生:它先把所有内容下载到一台 Mac 上,再直接同步到运行在我可控硬件上的 Immich。
服务器端的配置
如果你之前用过 Immich,它的部署流程并不新鲜。它已经以容器的形式部署在我的 Unraid 主机上,由独立的 Postgres 数据库和阵列上的专用存储目录支撑。
唯一需要提前做的,就是从 Immich 的用户设置中生成一个 API 密钥,以便 ImmiBridge 能够完成身份验证。
Mac 端的配置
在 Mac 上,ImmiBridge 会请求访问“照片”应用的权限,随后你可以指定目标位置。它支持按日期归档导出到本地文件夹、同步到 Immich 服务器,或者两者兼施。
既然这次的核心目的就是把数据搬到 Immich 上,我自然选择了后者。
接下来只需让它一直运行——借助 安非他命 这款能让 Mac 始终保持唤醒状态的 macOS 应用。如果你也做过类似的开发项目,这类工具市面上有不少,早在这一波 AI 热潮之前我就一直在用 Amphetamine 了。
让它慢慢处理
我的相册规模不小。在一个周末的时间里,ImmiBridge 从 iCloud 中拉取并同步了大约 5.1 万张照片和视频到 Immich。这个数字还包括 Live Photo,它们会被分别导出为静态图片与对应的视频片段,而不是被压缩成有损格式。
此外,它还基于 SHA1 校验码进行重复检测,因此即使同步中断后重新启动,也不会出现重复上传的情况。
遇到的一些问题
在观察其运行过程时,有几点值得注意。首先,“测试连接”按钮对我始终无效,每次都会因为未启用 TLS 而报错——毕竟我只是用笔记本电脑通过 IP 地址加端口直连 Unraid 服务器。
也许增加一个“禁用 TLS”的选项会更方便?我花了大约十分钟尝试各种方法,最后才意识到不如直接启动,看看结果如何。
另外,在使用某个早期版本对接特定服务器时,我还遇到了一次连接问题,最终发现是版本不匹配,而非 Immich 配置本身的问题。如果连接尝试长时间卡住,不妨核对一下服务器版本是否符合应用的要求。
我的功能期待
我一直希望能有一个选项,把截图排除在同步之外。十四年的 iPhone 截图实在没必要挤进本该以真实照片为主的相册。我已经在项目的社区讨论区发起了这项需求,希望能在未来的版本中实现。
此外,我也想看看能否过滤掉那些“杂物”类的照片。听起来可能有点奇怪,但从事任何行业的人难免会拍些管道、吊顶板之类的东西,甚至还有螺丝顶部的微距特写——有些可能是自己弄坏的,有些则未必。
目前我还没找到特别好的办法来解决这个问题,只能手动删除;不过我估计其中至少有上千张都是工作或家务相关的,往往是在去劳氏或家得宝买替换件之前的随手一拍。
效果如何?
截至目前,没有出现数据丢失或文件损坏的情况,也没有让我对继续推进剩余相册的迁移产生任何疑虑。如果你已经在使用 Immich,并且手头有一台 Mac,那么在从零搭建专属导出流程之前,ImmiBridge 绝对值得一试。
你可能会注意到截图中有很多被跳过或出错的图片。经过排查,我发现由于这些照片大部分早已存在于服务器上,当前主要是在补全此前各次备份中遗漏的部分——那些使用不同工具进行备份时未能覆盖到的内容。

你在做类似的事情时都用什么方案呢?欢迎在下方评论区分享你的经验。