500 GBくらいある超でかいファイルをLinux(Ubuntu)サーバーに落としたいことってよくありますよね。
普通にコマンドラインからwgetできるかと思っても、巨大なファイルはウィルスチェックが働かない関係でそのままでは無理です。ちょっとググって見つかった、こういうやつを使っても、よくわかりませんが動きません。gdownというPythonライブラリでもエラーが出てダメでした。
最終的には、 以下のQuoraにある手法でうまくいきました。
-
Google DriveのファイルのIDを取得します(仮にXXXXXとします)。
-
OAuth 2.0 Playgroundというのにアクセスし、"Select & authorize APIs"から"Drive API v3"というのをクリック、
https://www.googleapis.com/auth/drive.readonly
を選び、自分のアカウントでログイン、許可します。 -
"Exchange authorization code for tokens"を押すと Access tokenが生えるので、それをコピーします(YYYYYとします)。
-
以下のコードを実行します。ZZZZZはお好きなファイル名。
curl -H "Authorization: Bearer YYYYY" https://www.googleapis.com/drive/v3/files/XXXXX?alt=media -o ZZZZZ
SSHで繋いでいるような場合は、nohup
をつけておきましょう。