PythonでGoogle Driveからファイルをダウンロード
背景
海外のサーバーに大きめのファイルをアップロードしたいが、FTPで直接アップロードすると時間が掛かる、あるいは通信が不安定で途中で落ちてしまう。そこで、一度Google Driveにアップロードして、それをサーバーから直接ダウンロードすることにした。
手順
ファイルIDを取得
Google Driveで以下のような共有リンクを取得することができます。
https://drive.google.com/file/d/%ファイルID%/view?usp=sharing
そのうち、上記のファイルIDに該当する箇所をメモします。 尚、リンクを知っているひとはダウンロードできる設定を選択しておく必要があります。
ライブラリのインストール
gdownというライブラリをインストールします。
pip install gdown
Pythonでダウンロード
メモしたfile_idと、ダウンロードしたときの保存ファイル名(output)を指定し以下を実行します。
import gdown file_id = %ファイルID% url = f"https://drive.google.com/uc?id={file_id}" output = "download.zip" gdown.download(url, output, quiet=False)
尚、大きめのファイルを何度もダウンロードすると、Google Drive側からアクセスを一定時間拒否されるようになります。
私の場合、24時間前後アクセスができない状態になりました。