r0w0

PythonやDeepLearning関連で学んだこと、調べたことの備忘録

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時間前後アクセスができない状態になりました。