群晖NAS自动同步iCloud照片

前情提要:

由于网上看到的所有教程,

几乎没一个靠谱的,

全部都是小白自行捣腾出来的步骤,

评论里问题很多,

看得让人心疼,

所以趁娃子睡了,

赶忙整理一篇保姆式的避坑教程。


本教程优势如下:

1.全程在群晖桌面上窗口式操作,不需要开启SSH权限,不需要下载SSH客户端,不需要使用群晖SSH最高权限,也不需要懂Linux命令,避免一切不必要的风险;

2.不浪费一丝一毫的NAS硬件资源,不需要Docker运行Linux操作系统容器,也不需要装什么Docker网页管理面板,Docker原生运行,性能直接拉满;

3.关键步骤反复叮嘱加图解,避免踩坑,贴心呵护直至顺利配置完成。


先说正题,操作流程如下:
一、管理员登录群晖桌面,这是句废话,但还是要说,举例,我的管理员账号为【xlang】。
二、打开群晖【File Station】,新建所需文件夹及文件:

docker/icloudpd/xlang
homes/xlang/Photos/iCloud
homes/xlang/Photos/iCloud/.mounted

三、打开群晖【套件中心】安装【Docker】套件。
四、打开安装好的【Docker】套件,点击左侧菜单【注册表】,搜索关键词“icloudpd”,双击下载星标最多的那个【boredazfcuk/icloudpd】。图片
五、左侧菜单切换到【映像】,稍等片刻,待下载完成后,双击开始创建容器。图片
六、容器名称,看你喜好,例如我就随手输了个“icloudpd-xlang”,然后点击左下方的【高级设置】。图片
七、勾选“启用自动重新启动”,这个不是必须的,如果你想长期丢那让NAS自动运行,那就勾上,不勾也是可以的。图片
八、切换到【存储空间】设置栏,添加以下两个文件夹的状态路径:

docker/icloudpd/xlang --> /config
homes/xlang/Photos/iCloud --> /iCloud

1.选择文件夹docker/icloudpd/xlang装载路径/config
2.选择文件夹homes/xlang/Photos/iCloud装载路径/iCloud

如下图所示:

图片

九、切换到【环境】设置栏,新增以下三个变量:

apple_id:xxx@xxx.com
TZ:CST-8
download_path:/iCloud

1. apple_id:xxx@xxx.com
必须,输入你的iCloud服务的AppleID。
2. TZ:CST-8
非必须,中国时区按这个填写,网上清一色的要求填写Asia/Shanghai是无效的,还不如不新增这个变量。
3. download_path:/iCloud
必须,否则默认为/home/${user}/iCloud。
如下图所示:

图片

十、点击右下角“应用”,返回到创建容器主界面,点击“下一步”,最后点击“完成”启动创建好的容器。

图片

十一、回到Docker界面,双击刚刚创建好的“icloudpd-xlang”容器,查看日志,可以看到容器的运行情况,右下角转圈圈的图标多刷新几次,会看到下面的错误提示,就可以进入最激动人心的密钥文件创建的过程。

ERROR    Keyring file /config/python_keyring/keyring_pass.cfg does not exist.
INFO      - Please add the your password to the system keyring using the --Initialise script command line option.
INFO      - Syntax: docker exec -it <container name> sync-icloud.sh --Initialise
INFO      - Example: docker exec -it icloudpd sync-icloud.sh --Initialise
INFO     Restarting in 5 minutes...

如下图所示:

图片

十二、好了,到了要屏住呼吸的时刻了:1.切换到【终端机】一栏,点击【新增】右侧的下拉小箭头;图片
2.选择【通过命令启动】;
图片
3.在弹出的对话框输入“/bin/sh”后点击【确定】;图片
4.左侧菜单选择打开刚刚新建的【sh】终端;
图片
5.输入以下命令后回车,进行初始化:

sync-icloud.sh --Initialise
图片

十三、开始进行苹果账号的双重认证了,创建cookie文件,有效期默认为90天,到期后需再进行一次认证:1.如下图所示,按提示输入你的AppleID密码,盲输,这里不会显示你输入的内容,输入完成后回车;

Enter iCloud password for email@address.com:
图片

2.如密码正确,会提示询问你是否保存,输入“y”后回车,不然就全剧终了;

Save password in keyring?  [y/N]: y
图片

3.这时候你登录了AppleID的设备上会提示是否允许登录的弹窗,先不要理会,在提示询问后输入数字“0”后回车;

Which device would you like to use? [0]: 0
图片

4.在收到提示的设备上,点击【允许】登录,获取弹窗验证码,将该验证码按下面提示输入后回车;

Please enter validation code: 123456
图片

5.校验通过后,Apple会通过短信,注意是短信发送二次验证码,这时候你设备上再有弹窗点击【允许】即可,弹窗验证码无需理会,短信验证码收到后,如下图所示,按提示输入数字0后回车,按提示输入6位数字的短信验证码,回车后完成二次验证文件的创建。

Please choose an option: [0]: 0
Please enter two-factor authentication code: 123456
图片

十四、所有配置到此结束,重启容器,查看日志,看到以下内容,说明运行成功,在iCloud中生成文件列表,等着自动下载iCloud照片即可,默认为24小时增量下载一次,默认下载原始尺寸文件。

图片

用上述方法,我老婆的账号下载iCloud上12740个原尺寸照片及视频,用时9小时45分钟完成,而采用iPhone下载,从2月6日18点52分13秒开始,到现在(2月9日18点56分)刚好72个小时,还剩5660个文件等待下载中,期间无数次因为手机内存被占满,导致微信无法使用(提示微信正常使用需5.4G空间),只能删除已下载已备份的内容,来腾出一点运行空间。


一些扩展小知识:1.网上最开始的开源软件是icloud_photos_downloader,也就是【注册表】里搜到的排第二的那个【icloudpd/icloudpd】,由于作者弃更,已经一年多没有更新了,虽然如此,但仍要感谢鼻祖大佬作出的贡献。
2.目前用的【boredazfcuk/icloudpd】是现作者在原【icloudpd】的基础上拓展而来,功能相当全面,配置也很简单,简直上天,可能由于作者对Docker的了解不够深入,所以给出的操作方法依然是Linux命令行的方式来配置,这一点可能导致了很多人第一步就去用Docker去安装一个Linux的操作系统,然后再安装Portainer来管理Docker,白白浪费大量的性能资源,这里还是要提醒大家避坑。
例如以下教程:【知乎】如何备份iCloud照片到NAS?作者一开始就用Docker安装了Ubuntu 20.04环境,然后再用大量的命令行部署Docker环境,接着再安装Docker管理面板Portainer以方便日后管理Docker,循环套娃,浪费掉大量性能。【知乎】通过icloudpd间接实现iOS后台自动备份照片至群晖作者进行了基础研究,避免了部分资源的浪费,但是用开启群晖SSH,安装SSH客户端,用群晖系统root权限来进行配置,里面也有大量的没必要的操作。【知乎】群晖用docker的icloudpd同步icloud照片至Synology Photos并自动刷新作者在上一篇教程上进行了修改,可能是排版原因,看的更加不知所云。【小白记录】群辉 docker iCloud照片原尺寸备份作者采用的是最开始的icloudpd,也是一开始就安装了Ubuntu,最后应该是成功了,但是配置繁琐,容易出错,每次备份100个照片。
3.所有的教程中,时区的设置都是Asia/Shanghai,这是个无效设置,最终结果就是容器运行时间为UTC时间,比北京时间晚8个小时,正确的设置应该是【CST-8】,不介意的话,影响不大,创建容器时可以不新增【TZ】这个变量。


icloudpd的一些扩展功能:
1.设置同步时间周期,默认为86400秒(24小时),自动运行同步iCloud上新增的 内容,如需修改,可在创建容器时,新增一下变量synchronisation_interval,并设置相应的值,例如43200(12小时)、129600(36小时)等,理论上设置为1秒也是可以的,但是苹果倾向于限制过于频繁的访问其服务器链接,默认设置个人认为是最佳值,iPhone会立即将文件上传到iCloud,如果手机丢失,当天拍摄的内容在iCloud也是安全的,容器会在晚上运行时下载这些内容。

synchronisation_interval:43200

2.设置多个容器同步的分钟数,默认为0,如果需要自动同步过多AppleID的iCloud内容,可以进行设置,新增变量synchronisation_delay,例如30分钟,避免多账户同时访问遭到苹果的风控限制。

synchronisation_delay:30

3.设置iCloud账户身份验证类型,默认为2FA,如果启用了双重认证,则有效值为2FA,否则为Web,如iCloud账户未启用双重认证,则必须新增变量authentication_type,设置为Web,如下所示:

authentication_type:Web

4.设置下载目标目录的文件夹结构,变量folder_structure,默认为 {:%Y/%m/%d}(年/月/日),可按需进行调整,例如:年/月

folder_structure:{:%Y/%m}

5.设置是否跳过已下载检查(增量同步),默认为False(不跳过),也就是默认为每次启动只同步新增内容,如果要重新完全同步,可设置变量skip_check的值为True

skip_check:True

6.设置扫描“最近删除”文件夹,并删除其中找到的所有文件,意思是,你手机上删除的照片,是否同步删除,默认为不扫描,也就是不同步删除,如果你想同步删除或恢复,可设置变量auto_delete的值为True

auto_delete:True

7.设置要下载的照片大小,默认为original(原始尺寸),如需调整,可设置变量photo_size的值为original(原始尺寸)、medium(中等质量)、thumb(缩略图),如下所示(二选一):

photo_size:medium
photo_size:thumb

8.设置是否下载时将HEIC文件转换为JPEG格式,同时保留原始文件,如设置此变量convert_heic_to_jpeg,不论为何值,则转换。
9.设置HEIC文件到JPEG转换的质量,可设置变量jpeg_quality,数值为0(最低质量)到100(最高质量),默认为90,如想得到最高质量的转换,可如下设置:

jpeg_quality:100

10.设置是否强制使用云上贵州为下载源,如你的iCloud由云上贵州运营,而你的NAS又在国外,可以设置变量icloud_china,不论何值,将强制以icloud.com.cn作为下载源,NAS在国内不用,自动会解析到云上贵州的IP。
以上就是一般用得到的变量设置,如需了解其它不常用的功能设置,可以访问【boredazfcuk/icloudpd】作者在Docker Hub页面,地址:https://registry.hub.docker.com/r/boredazfcuk/icloudpd/


好了,教程到此结束,那么多照片那么好看、值得纪念,是应该好好保存,祝大家配置顺利,使用愉快!熟练的话,2分钟应该是可以配置好的。

我是王小浪,一个很懒的人,所以很少会耐心出教程,本来准备录个视频的,但是因为懒,不准备出了,我要去带娃子了,以后再检查是否有错别字。

前一篇文章群晖(Synology)DS920+
下一篇文章907X 50C

相关内容

猜你喜欢

Marshall Stanmore III

Stanmore III 占据了我们家庭系列的中间和中心舞台,其声场比其前身更宽,并为家庭音响带来了广阔的 Marshall 声音。这款蓝牙扬声器经过重新设计,可提供更加身临其境的体验,并可用作强大的家庭扬声器音响系统。

Blue Mix-Fi 录音棚耳机

20 年来,Blue 的麦克风为全球录音棚高品质音频采集设立了全新标杆。如今,我们打造的这款录音棚级耳机为您带来了无与伦比的深度、清晰度和强劲音效,是您聆听录音的绝佳选择。Blue 率先在耳机中结合了内置发烧级耳放和定制的匹配驱动单元,让您在表演时尽情发挥。无论是录音棚设备,还是笔记本电脑、平板电脑,甚至是您的手机,Mix-Fi 在各种设备上都能展现顶尖的性能和音质。

Blue Yeti 大雪怪 USB麦克风

油价飞涨工资不涨的年代,想录制一些专业的课程来挣钱补贴点油费,顺便满足下自己唱歌的需求,原本是想入手舒尔的,因为便宜,还是选择了大雪怪。。

Beats Fit Pro 真无线降噪耳机

媳妇说要买个新耳机,就买了。。 紫色很有韵味。。 于是我顺利的继承了她的AirPods 2。。

热门分类

评论

留下一个答复

请输入你的评论!
请在这里输入你的名字