iPhone相册都是通过iCloud同步备份,苹果全家桶超级方便。但是用Windows的电脑,想导出一些照片就非常麻烦,因此想通过群晖NAS来自动将iCloud相册里面所有照片视频自动同步下来,同时也多一个数据备份(万一云上贵州有什么三长两短)
▼ icloudpd是Github上一个开源项目,在docker已有百万+次的下载。虽然输入apple id和密码有一定风险,但密码信息是保存在NAS本地,且apple id开启双向验证(就算知道密码也没用),个人认为问题不大

准备工作
- 一台可运行Docker的群晖Nas(必须是x86 CPU才支持Docker)
- 套件中心,安装好Docker
- 自己的apple id和密码
第1步:新建存放iCloud照片视频的目录
▼ 用File Station,找合适地方,新建2个文件夹、1个文件,比如:
- docker/icloudpd (存放配置文件)
- Photo/iCloud (存放同步的照片视频)
- Photo/iCloud/.mounted (新建一个空白的.txt文本文件,上传nas后,改为.mounted)

第2步:下载并配置icloudpd的Docker容器
▼ 打开Docker -> 注册表,搜索icloudpd,双击下载,如下图所示,下载完成后,映像中查看

▼ 在映像 -> icloudpd,点击启动,来创建Docker的容器

▼ 在网络中,选择使用与Docker Host相同的网络

▼ 根据需要修改容器名字,然后点击 高级设置

▼ 在环境中,如下图配置所需的变量,完成后保存,回到常规设置,点下一步
- TZ:Asia/Shanghai
- apple_id:aray@gmail.com (你的苹果账号)
- download_path:/icloud
- icloud_china:True (2022-10-15更新:新增云上贵州下载配置)

▼ 在存储空间设置,将此前准备的文件夹添加进来,并配置装载路径/icloud 和 /config ,点下一步

▼ 所有配置核对无误后,完成Docker的所有配置

第3步:配置iCloud账号,完成验证
▼ 在容器中,双击已经运行中的icloudpd容器

▼ 在终端机 -> 新增 -> 通过命令启动,在弹框中输入一个命令/bin/sh,点击确定

▼ 点sh,并在命令窗口内,输入以下命令,进行初始化,耐心等待,直到提示Ender iCloud password for appleid,输入你的appleid密码(输入时无显示,直接敲完键盘回车)进行验证
sync-icloud.sh --Initialise

▼ Apple ID密码验证成功后,会提示 Save password in keyring?[y/N],输入y回车进行保存

▼ 如果苹果账号启动了双向验证安全机制,会提示以下选项,2选1即可,我选1
- 0:SMS to **********08 (使用绑定的手机号,收取验证码短信)
- 1:Enter two-factor authentication code (使用绑定过此账号的iphone等设备来授权)

▼ 选1方式,iphone弹出是否授权提示,选Allow接受。接着会弹窗一个6位授权码,不要点ok,先记下来

▼ 将6位授权码,输入并回车,确认完毕,最后提示successful成功。关闭当前窗口

▼ 点重新启动,大概等1分钟即可完成容器的重启和运转

▼ 点日志,可以看到开始同步文件,这里会等待一段时间,需要耐心一些

▼ 相册文件开始同步了,完成同步时间取决于你的相册文件数和大小

常见问题
▼ apple id密码成功后,双向验证失败(或者验证过期以后)。【解决办法】:重启容器,并再次通过终端执行sync-icloud.sh –Initialise来重新进行验证

进阶变量配置
▼ 在icloudpd的Github,可以看到完整的变量参数配置,我挑选几个比较典型的给大家分享

synchronisation_interval:同步间隔时间(单位是秒),可设值21600/43200/86400(默认)/129600/172800/604800,分别对应6小时/12小时/24小时/36小时/48小时/7天
skip_check:跳过新文件检查,对于相册文件超过2000+,建议设置成True,默认是False
set_exif_datetime:设置True,把exif里面的信息写入下载下来的文件,这样下载的文件创建时间就是原文件信息(排相册时候非常有用,不然所有照片都是同一个日期),默认是False
评论12