本內容來源於@什麼值得買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:[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分鐘應該是可以配置好的。
我是王小浪,一個很懶的人,所以很少會耐心出教程,本來準備錄個視頻的,但是因為懶,不準備出了,我要去帶娃子了,以後再檢查是否有錯別字。
作者聲明本文無利益相關,歡迎值友理性交流,和諧討論~