大約在兩年前,學習樹莓派相關的知識時,想要使用樹莓派存取 Google Drive 上的檔案,當時找到一個 overGrive 套件,安裝後需要付費授權才能使用,也就放棄這個套件。最近買了 4B的樹莓派後,繼續研究,找到一個套件名為 gDrive,gDrive是用於與Google雲端硬盤互動的命令行工具,通過命令列指令將文件上傳到 Google 雲端硬盤的便捷工具。本篇就來實做一下如何在文字模式下,同步 Google Drive 與樹莓派目錄的檔案。
2. 為新專案啟用 Google Drive API,可連線到Google Cloud控制台的 Google Drive API 頁面。在這個頁面上,按下 Enable 按鍵。
3. 接著進入下一頁,在右側欄 Credentials 頁面,按下右方的 CONFIGURE CONSENT SCREEN 按鈕。
4. 在 User Type 用戶類型中選擇 External 外部,然後按下 Create 開始建立API 應用。
5. 下一頁面要輸入應用程序的名稱,我在畫面輸入「gDrive-rPi-atceiling」,按下最下方的 Save 。
6. 按下最下方的 Save 後出現以下畫面。
7. 選擇左方 Credentials ,按下 +CREATE CREDENTIALS ,出現下拉選單後,按下「OAuth Client ID」
8. 接著選擇應用程序類型。由於沒有一個選項適合我們使用的API,選擇「Other」其他 。下方輸入名稱,我輸入 gDrive-rPi-ID,在按下 Create 。
9. 產生下圖的 Client ID 及 Secert 密碼。
執行以下指令讓路徑生效:
const ClientId = "Your_Client_ID"
const ClientSecret = "Your_Client_Secret"
再按下 Ctrl + X ,然後再按 Y 存檔。
執行以下命令,讓 Go 語言編譯 gDrive 所需的套件及相關程式:
到這裡已經安裝好gdrive,可是還沒跟 Google drive帳號連結,我們使用 gdrive 來執行列表複製等指令。
例如:gdrive list是列出 Google drive 帳號下的檔案及目錄,我們也用這個指令來進行身份驗證工作,執行 Google Drive的檔案列表:
這時需要將上圖 https:...這段文字複製,貼到瀏覽器時,會出現以下視窗:
此時,再將上圖授權碼複製,貼到 gdrive list 出現需要輸入驗證碼的地方,此時可以看到我的 Google Drive 的檔案列表:
有關 gdrive 操作的指令,可以參考 Github gDrive 的說明。
[設定Google Drive API]
1.首先到 Google Developer Console 中的「新增專案」的頁面。輸入專案名稱,我輸入的是gDrive-rpi,再按下 Create 。2. 為新專案啟用 Google Drive API,可連線到Google Cloud控制台的 Google Drive API 頁面。在這個頁面上,按下 Enable 按鍵。
3. 接著進入下一頁,在右側欄 Credentials 頁面,按下右方的 CONFIGURE CONSENT SCREEN 按鈕。
4. 在 User Type 用戶類型中選擇 External 外部,然後按下 Create 開始建立API 應用。
5. 下一頁面要輸入應用程序的名稱,我在畫面輸入「gDrive-rPi-atceiling」,按下最下方的 Save 。
6. 按下最下方的 Save 後出現以下畫面。
7. 選擇左方 Credentials ,按下 +CREATE CREDENTIALS ,出現下拉選單後,按下「OAuth Client ID」
8. 接著選擇應用程序類型。由於沒有一個選項適合我們使用的API,選擇「Other」其他 。下方輸入名稱,我輸入 gDrive-rPi-ID,在按下 Create 。
[安裝Go 語言]
下載 go 語言:$ wget https://dl.google.com/go/go1.13.7.linux-armv6l.tar.gz -O go.tar.gz解壓縮,將檔案放到 /usr/local
$ sudo tar -C /usr/local -xzf go.tar.gz加入 go語言的路徑:
$ nano ~/.bashrc在檔案下方加上以下兩行:
export GOPATH=$HOME/go export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin再按下 Ctrl + X ,然後再按 Y 存檔。
執行以下指令讓路徑生效:
$ source ~/.bashrc
[下載編譯 gDrive]
要編譯 gdrive前,先確認系統檔案是否已經更新:$ sudo apt update下載 gdrive 原始碼需要 git 工具,安裝指令如下:
$ sudo apt install git到 github 下載 gdrive :
$ git clone https://github.com/gdrive-org/gdrive切換目錄,編輯 go語言的程式檔:
$ cd gdrive $ nano handlers_drive.go在此文件中,找到以下幾行並將其替換為Google 提供的 Client ID & Secret key。
const ClientId = "Your_Client_ID"
const ClientSecret = "Your_Client_Secret"
再按下 Ctrl + X ,然後再按 Y 存檔。
執行以下命令,讓 Go 語言編譯 gDrive 所需的套件及相關程式:
$ go get github.com/prasmussen/gdrive使用以下指令將 gDrive 編譯到設備中:
$ go build -ldflags '-w -s'將 gdrive 指令移至/usr/local/bin/,讓指令隨時可以被執行:
$ sudo mv gdrive /usr/local/bin/gdrive設定 gdrive 可執行的檔案權限:
$ sudo chmod a+x /usr/local/bin/gdrive
到這裡已經安裝好gdrive,可是還沒跟 Google drive帳號連結,我們使用 gdrive 來執行列表複製等指令。
例如:gdrive list是列出 Google drive 帳號下的檔案及目錄,我們也用這個指令來進行身份驗證工作,執行 Google Drive的檔案列表:
$ gdrive list
這時需要將上圖 https:...這段文字複製,貼到瀏覽器時,會出現以下視窗:
此時,再將上圖授權碼複製,貼到 gdrive list 出現需要輸入驗證碼的地方,此時可以看到我的 Google Drive 的檔案列表:
有關 gdrive 操作的指令,可以參考 Github gDrive 的說明。
[參考資料]
- Github gDrive:https://github.com/gdrive-org/gdrive
- pimylifeup:https://pimylifeup.com/compiling-and-running-gdrive/
- go language:https://golang.org/dl/
張貼留言