最近因為有上傳大量檔案到 Google Drive 的需求,嫌使用 GUI 工具沒有效率,所以搜尋了可以管理上傳下載或檔雲端空間案管理指令列工具,找到了這款工具 - duck

duck 事實上是 Cyberduck 這個雲端空間管理 app 的指令列版,所以同樣的也需要 Java,而在不同作業系統平台上需要的配置可能不同,筆者主要用 macOS, 所以以下就主要以 macOS 的安裝配置來介紹

macOS 需要先行安裝 Homebrew,相關說明可以參考這一篇

安裝

brew install duck

前面提過要先安裝 Java, 如果沒有在安裝過程中就會跳出提示訊息。

安裝完 duck 以後,輸入 duck --help可以列出詳細設定說明

Duck-help

Google Drive 配置以及操作示範

事實上 duck 支持多種不同的雲端空間,不是只有 Google Drive ,但是筆者主要使用的是 Google Drive , 因此僅就設定 Google Drive 的過程來簡述。

duck 連接 Google Drive 的格式如下:

googledrive://[email protected]/

假設我想列出路徑底下的檔案,

duck -l google drive://[email protected]/path/

Duck-listcommand

第一次連接時,會使用 OAuth2 驗證,跳轉到 Safari 登入視窗取得 Google 帳戶授權以後跳轉回來,之後就會記憶授權直接登入。

大部分人用到最多的應該是上傳功能

duck --upload google drive://[email protected]/path/ /uploadfile

UploadProgress

要注意的是,duck 指令輸入時有以下特點:

  1. 資料夾後面一定要加/, 否則會被當成檔案處理,如 /folder 與 /folder/ 是不同的
  2. 檔名空白請記得跳脫,如 /My\ Folder/,如果出錯,改成/My%20Folder/ 試試看

如果怕 macOS 在上傳半途中睡眠,可以在前面加個 caffeinate -i

caffeinate -i duck -l google drive://[email protected]/path/