17

五分钟搞定,群晖NAS自动同步iCloud照片(原尺寸或自动转换为JPG格式)

 2 years ago
source link: https://post.smzdm.com/p/amxq2zp4/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

五分钟搞定,群晖NAS自动同步iCloud照片(原尺寸或自动转换为JPG格式)

2022-02-10 21:22:46 136点赞 1028收藏 91评论

前情提要:
由于网上看到的所有教程,几乎没一个靠谱的,全部都是小白自行捣腾出来的步骤,评论里问题很多,看得让人心疼,所以趁娃子睡了,赶忙整理一篇保姆式的避坑教程。

本教程优势如下:
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:[email protected]
TZ:CST-8
download_path:/iCloud

1. apple_id:[email protected]
必须,输入你的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 --InitialiseINFO 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 protected]:

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分钟应该是可以配置好的。

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

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

the-end.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK