2020年12月30日 星期三

透過Docker將Google Photo相簿同步到本地硬碟

 *事前準備

如果你電腦還沒有安裝,請先參考 官方文件 進行安裝,或是Google搜尋如何在電腦上安裝Docker


1. 在電腦內建立兩個資料夾,一個名稱為 storage,用來儲存從Google下載的照片,另一個名稱為 config,用來放設定檔案

2. 到 Google Console 做事前準備:

[1] 打開 Google Cloud Platform 
[2] 建立新專案,名稱自訂,位置選無機構,按下建立

[3] 點選左邊的『資料庫』

[4] 在『搜尋API和服務』輸入 『Photo Library API』,並且點選搜尋結果
[5] 點選『啟用』

[6] 點選『憑證』,再點選『建立憑證』,然後選擇『OAuth 用戶端 ID』


[7] 點選『設定同意畫面』

[8] 點選『外部』,再點選『建立』


[9] 應用程式名稱輸入一個自己想要的名稱,使用者支援電子郵件選擇自己的email,開發人員聯絡資訊的電子郵件輸入自己的email,之後按下『儲存並繼續』
[10] 點選『新增或移除範圍』,將全部的API都打勾,按下『更新』,再按『儲存並繼續』

[11] 按下 『ADD USERS』,並且輸入你想同步的Google帳號,有幾個就要輸入幾個,然後按下『新增』,再按下『儲存並繼續』
[12] 直接拉到最下面,按『返回資訊主頁』
[13] 點左側功能表的『憑證』,選擇『建立憑證』,點選『OAuth用戶端ID』
[14] 應用程式類型選擇『電腦版應用程式』,點選『建立』
[15] 他會先彈出一個『OAuth用戶端已建立』的視窗,先點『確定』關閉,然後點選最右邊的下載按鈕,並且將下載好的檔案重新命名成『client_secret.json』
[16] 將重新命名的『client_secret.json』檔案放到步驟一所建立的『config』資料夾中

3. 到你電腦的終端機中輸入以下指令:

docker run \
 -ti \
 --name gphotos-sync \
 -v {步驟一建立的storage資料夾路徑}
:/storage \ 
 -v {步驟一建立的config資料夾路徑}:/config \ 
 gilesknap/gphotos-sync \
 /storage

隔沒多久會出現一個網址給你,拿這個網址貼到瀏覽器,進行同意後會給你一串代碼,再把他貼回終端機內貼上,並且按下Enter



4. 接下來會看到『WARNING  Downloading Photos』這個字眼,代表已經開始下載你的Google Photo的照片了,第一次會把你上面所有的相片下載下來,會需要花上許多時間,端看你上面有多少照片來取決於他第一次同步的時間會花多長


5. 接下來將以下啟動指令做成啟動檔,並且設定排程,就可以每天幫你自動抓相片嚕

 docker container start gphotos-sync


[後記]

最近在使用的時候發現出現了錯誤訊息:『oauthlib.oauth2.rfc6749.errors.TokenExpiredError: (token_expired)』

這時候請輸入以下指令來重新取得 token:

docker run \
 --rm \
 -ti \
 -v {步驟一建立的storage資料夾路徑}
:/storage \ 
 -v {步驟一建立的config資料夾路徑}:/config \ 
 gilesknap/gphotos-sync \
 /storage --new-token

然後照著步驟3再走一次就可以重新取得token了

2020年12月29日 星期二

透過 Synology NAS DDNS 功能更新 CLOUDFLARE IP

1. 到 『控制台』 -> 『終端機 & SNMP』 功能,將 『啟動 SSH 功能』打勾

2. 透過 SSH 連線到你的 NAS ,登入者的帳號要在 administrators 群組裡 

3. 輸入以下指令進入 root 權限
 
sudo -i

輸入後會要求你輸入登入者的密碼 

4. 輸入指令來下載 cloudflareddns.sh 到 /sbin/ 資料夾中 

wget https://raw.githubusercontent.com/joshuaavalon/SynologyCloudflareDDNS/master/cloudflareddns.sh -O /sbin/cloudflareddns.sh

5. 修改剛剛下載的檔案權限讓系統可以執行

chmod +x /sbin/cloudflareddns.sh

6. 使用編輯器打開DMS DDNS 設定檔案

vi /etc.defaults/ddns_provider.conf

並且將剛剛的sh加入 DMS 的 DDNS 選項

[Cloudflare]
modulepath=/sbin/cloudflareddns.sh
queryurl=https://www.cloudflare.com/
擺放的位置沒有一定,只是我習慣按照順序擺放在對的順位,這樣等等在DDNS下拉選單才會是依照文字順序排列( 

7. 到 CloudFlare 的 『概觀』 頁面,拉到最下面,可以取得你的『區域識別碼』,先把他記下來,等等會用到
8. 點擊 『取得您的API Token』
選擇『API Token』-> 『建立Token』
點擊『建立自訂 Token』後方的『開始使用』按鈕
在權限的地方選擇『區域』『DNS』『編輯』,再點擊『繼續至摘要』
確認所新增的權限沒有問題以後,點擊『建立Token』
接下來你會拿到一組 API Token,請把他記下來,等等設定會用到
9.回到DSM的『控制台』 -> 『外部存取』-> 『DDNS』,點下『新增』,服務供應商選擇『Cloudflare』
10. 依照圖中的說明填入相對應的資料,並且按下『確定』
11. 選擇Cloudflare,點下『立即更新』,如果看到狀態是『正常』就代表你設定成功嚕,這個時候回到Cloudflare的DNS頁面就可以看到你更新後的IP了