在樹莓派安裝Rclone連結google drive

利用 RCLONE 掛載 Google Drive


安裝 rclone

參考 rclone 下載頁面,使用官方 script 安裝
curl https://rclone.org/install.sh | sudo bash

申請個人google client ID

申請 Google client ID, 先用瀏覽器到  Google Developer Console 頁面,並登入google 帳號
此步驟不需要在樹莓派上面做,任一台電腦皆可

左上角 "選取專案"  > "新增專案"
專案名稱: my-rclone-gdrive-access
然後 "建立"

在專案頁面下點選 "+啟用API和服務"
搜尋 "Drive"
選擇 "Google Drive API" > "啟用"

在左側欄點選 "憑證",會看到如下警告
點選 "設定同意畫面" > "外部"
填入資訊:
應用程式名稱: my-rclone
點選 "新增範圍",點選 ../auth/drive ( 有權限可以 “查看、編輯、建立及刪除您的所有 Google 雲端硬碟檔案”) ,點選 "新增"
點選 "儲存"

回到左邊側欄 "憑證" 頁面,上面點選 "建立憑證" > "OAuth 用戶端ID"
應用程式類型選擇 "其他",並填入名稱 "my rclone client" > "建立"
記下 用戶端ID 與密碼

設定 rclone

回到樹莓派
rclone config

- 建立一個 New remote (n)
- Name: gdrive
- 選擇 Google Drive (13) (認明 Google Drive, 編號可能不同)
- 填入剛剛申請的client ID 與密碼
- Scope: 1 (完整權限)
- root_folder_id: 空白
- service_account_file: 空白
- Edit advanced config? n
- auto config: n

點選連結做認證,貼回認證碼
- team drive? n (或根據需求選擇)
- 最後確認: y
- 離開: q

接下來要建立一個資料夾來mount
sudo mkdir -p /mnt/movies
掛載 (目錄要有寫入權限)
rclone mount gdrive: /mnt/movies
卸載
fusermount -qzu /mnt/movies

編輯 /etc/fuse.conf 取消以下兩行的註解,這樣才能使用 rclone mount 的 --allow-other 參數 (參考)
mount_max = 1000
user_allow_other

開機自動掛載

systemd 會去這個路徑找 config:/etc/systemd/system
所以我們可以在這個路徑下建立一個設定檔 xxx.service
xxx為服務的名子,例如 rclone.service
[Unit]
Description=Rclone: Mount /mnt/movies from Google Drive
Wants=network-online.target
After=network-online.target

[Service]
Type=notify
User=USERNAME
Group=USERNAME
Environment=RCLONE_CONFIG=/home/USERNAME/.config/rclone/rclone.conf
ExecStart=/usr/bin/rclone mount gdrive: /mnt/movies \
 --umask 002 \
 --default-permissions \
 --allow-non-empty \
 --allow-other \
 --buffer-size 32M \
 --dir-cache-time 12h \
 --vfs-read-chunk-size 64M \
 --vfs-read-chunk-size-limit 1G
ExecStop=/bin/fusermount -u /mnt/movies
Restart=on-abort

[Install]
WantedBy=multi-user.target
每次變更了 systemd 設定檔,要先 reload,然後 enable service
(Enable --now 會啟動 service, 並且開機在user登入時自動執行)
sudo systemctl daemon-reload
sudo systemctl enable --now rclone.service
sudo systemctl status rclone.service
其他操作
sudo systemctl restart rclone.service  #重啟
sudo systemctl start rclone.service #啟動
sudo systemctl stop rclone.service  #停止
sudo systemctl disable --now rclone.service #Disable(Remove service file after)

參考資料:


相關系列文章:

留言

這個網誌中的熱門文章

[TCL] 基本語法與指令 - 2. TCL 語法

[TCL] 基本語法與指令 - 3. 資料型態

[TCL] 基本語法與指令 - 1. TCL 簡介