百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

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

sinye56 2025-01-27 00:14 12 浏览 0 评论

本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:我是王小浪



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

本教程优势如下:
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 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@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分钟应该是可以配置好的。

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

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



相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: