Matrix 首页推荐 

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


由于家人的照片视频太多,我目前开了 2TB 的 iCloud 套餐。在开 iCloud 套餐之前我尝试过使用 QNAP 的 Photo 应用,但是终究没有 iCloud 方便——原图上传 iCloud,手机保留缩略图,随时可以点开来看太香了,缺点就是有点贵。

接下来这套方案在日常使用没什么问题,但最好本地可以备份一份原图。一来可以避免苹果服务器宕机(这种可能性很低),二来未来有更经济的方案可以随时进行迁移,三来也是为了照片的安全。

本方案需要使用到 Docker 服务,我自己是部署在 QNAP 的 NAS 上面的,所以接下来我会以 QNAP 来打样。如果你有群晖、树莓派、闲置的电脑理论上都是可行的。

前置准备工作

  • 关闭 iCloud 账户的 ADP 功能(高级数据保护)。开启这个功能会限制使用 iCloud 网页,导致无法实现方案中备份效果,如果你非常重视端到端加密等措施,不愿意关闭此功能就此打住不用折腾了。关闭这个功能后可能需要等待一周左右的时间,才会生效,因为苹果服务器需要时间去解密数据。
  • 创建一个名为「.mounted」的隐藏文件,以下简称「挂载文本」。你可以先创建一个名为「.mounted.txt」的文本文件,然后删除掉后缀名,就是一个 0kb 的文件。
  • 安装好 Docker 服务并且确保可以运行。

正式安装

创建文件夹(假设登录的用户名:张三)

创建用于储存配置文件的文件夹 config,存放位置与名称随意。

config文件夹位置

创建用于储存照片的文件夹 iCloud,存放位置与名称随意。我是在一个硬盘的根目录下直接创建的。

储存照片的文件夹

将「挂载文本」移入 iCloud 文件夹内。

创建容器

由于 Docker 服务器被屏蔽,所以大家可能比较难获取boredazfcuk/icloudpd的 Docker 镜像。假设你已经使用电脑端的 DockerDesktop 获取到了镜像并导出了,那接下来可以进行 QNAP 的镜像导入。

镜像导入

镜像导入路径
导入状态

生成容器

点击红框创建
填写名称且进行高级设置
修改环境变量
删除原来的设置
重新选择路径
重新挂在储存

点击创建运行,等待十几秒中中停止运行。此时,为 QNAP 指定的 config 文件夹会出现一个「icloudpd.conf」,接下来我们就开始进行设置。

选项的配置与解析

icloudpd.conf 的配置

user_id 与 group_id 的确认

此时使用「张三」需要登陆 QNAP 的 ssh,然后输入 `id`,就会显示这两个 id 值。它们会用来解决后面可能遇到的权限问题,非常重要!

至此保存 icloudpd.conf 文件。只要接下来初始化就可以使用了。

初始化

进入容器的命令窗口

  输入初始化代码:sync-icloud.sh --Initialize

进行两次验证登录并写入本地密码文件

保存密码到 keyring 文件

刚开始需要等待两分钟检查更新,然后会询问是否写入 keyring 文件,此时选择「yes」。随后开始要求输入 Apple ID 的密码,界面是没有显示的,输入完成后回车确认即可。等待一会应该会要求进行验证码验证。这个登录的过程会持续两次。

问题排错

ERROR:invalid value for '-d' / '--directory': path '/icloud' is not readable

权限问题,处理方案有两种:

  • 进入容器的执行界面,如何进入可以参考上文。然后运行`chmod 777 /iCloud`;
  • 在之前的 conf 文件中设置好对应的「张三」的 id 和 group_id 后,确保张三对 QNAP 文件夹有权限写入

ERROR:keyring file does not exist. please try again

  • 第一次启动就设置「true」导致的,先暂停容器,设置auth_china=trueicloud_china=true两个变量后再启动。

成功开始备份

成功备份

> 关注 少数派小红书,感受精彩数字生活 🍃

> 实用、好用的 正版软件,少数派为你呈现 🚀