
我想寫一個腳本來下載這個資料夾來自Google雲端硬碟。該腳本針對非專家 UNIX 用戶,因此我不想使用curl 或wget 以外的其他內容。我已經看到了帶有 fileid 的解決方案,但在我的情況下我無法取得 fileid 。
有人設法從 Google 雲端硬碟下載資料夾嗎?
以下是我嘗試過的解決方案:
答案1
我發現從谷歌驅動器下載大資料夾的最簡單的最新解決方案(2021)是 gdrive:
http://github.com/prasmussen/gdrive
gdrive download --recursive --skip <file_id>
其中<file_id>
id 是從資料夾 URL 取得的。無需配置任何內容,它會詢問您的憑證等。
該--skip
標誌對於大型資料夾很有用,因為下載可能會在某個時刻逾時。然後,您重新運行該命令,--skip
並將使其表現得像rsync
.
截至目前,這是一個相對較新的標誌,如果您透過 Go--skip
安裝則可用。gdrive
如果您的系統gdrive
沒有它,請在不使用 的情況下嘗試相同的操作--skip
。然後,如果您確實需要它,請go get
按照 github 自述文件頁面中的說明進行安裝。
答案2
我使用 PyDrive 庫編寫了一個 Python 程式碼,它可以遞歸地檢索父資料夾內的子資料夾和檔案。然後,我使用檔案的 id 使用 wget 產生了一個 bash 腳本。
步驟1 我使用了 PyDrive 庫。要使用此庫,您必須完成本中所述的說明關聯。
步驟 2 現在,在儲存「client_secrets.json」檔案的相同工作目錄中建立一個 python 腳本或筆記本。我在下面附上了筆記本。
https://gist.github.com/immuntasir/73b8e8eef7e6c9066aaf2432bebf7db0
步驟3
使用 scp,將“script.sh”複製到遠端伺服器。
scp ~/path/script.sh username@ip:path
步驟4
登入刪除伺服器,導航到該路徑。然後使用以下命令使腳本可執行。
chmod 777 script.sh
運行腳本,瞧!
./script.sh
我還寫了一個教程,可以在這裡找到:https://medium.com/@immuntasir/recursively-download-all-the-contents-of-a-google-drive-folder-using-python-wget-and-a-bash-script-d8f2c6b105d5
希望這可以幫助!
答案3
你的 fileId 位於你的資料夾的 url 位址上,你可以簡單地執行
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME