type
status
date
slug
summary
tags
category
icon
password
URL
追加修改(2022-02-11 02:05:35):
做个追加修改,针对部分值友担心的安全问题讲几句: 1.教程里用到的映像来自于Docker Hub,官方源,大家可以点映像右侧的链接图标进入官方页面,全球拉取次数已经1M+,如软件有什么问题,应该已经炸锅了,Docker也会干预。 2.映像源码在github上有发布,贡献者不少,活跃度也很高,更新频率不错,有条件的朋友可以上去看看,进一步放心一些。另外有值友在2018年就分享了这个开源软件,现在已经2022年了。 3.软件同步策略是根据iCloud文件列表单向向NAS下载同步,不会反向对iCloud文件造成影响,就连同步“最近删除”功能,也是通过文件对比来实现的,如果文件列表里以前有的文件,现在没有了,表示已经删除,如删除的文件回复了,列表里又有了,再次下载进行恢复,纯单向操作。 4.如果实在是不放心,当个技术文档看一下,网上部署该软件的教程几乎都是先装个Linux操作系统,通过大量的命令来执行,我这个教程无非是多个思路,让更多不理解命令的人轻松部署,也节省一些不必要的硬件性能开销。
前情提要:
由于网上看到的所有教程,几乎没一个靠谱的,全部都是小白自行捣腾出来的步骤,评论里问题很多,看得让人心疼,所以趁娃子睡了,赶忙整理一篇保姆式的避坑教程。
本教程优势如下:
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.comTZ:CST-8download_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 --InitialiseINFO Restarting in 5 minutes...
如下图所示:
十二、好了,到了要屏住呼吸的时刻了:1.切换到【终端机】一栏,点击【新增】右侧的下拉小箭头;
2.选择【通过命令启动】;
3.在弹出的对话框输入“/bin/sh”后点击【确定】;
4.左侧菜单选择打开刚刚新建的【sh】终端;
5.输入以下命令后回车,进行初始化:
十三、开始进行苹果账号的双重认证了,创建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]: 0Please 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:mediumphoto_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分钟应该是可以配置好的。
我是王小浪
,一个很懒的人,所以很少会耐心出教程,本来准备录个视频的,但是因为懒,不准备出了,我要去带娃子了,以后再检查是否有错别字。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
- 作者:Wilson Zeng
- 链接:https://wilsonzeng.com/article/059f254f-c5af-464f-b9db-3dfb2425b771
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。