search
LoginSignup
5

More than 3 years have passed since last update.

posted at

GoogleDriveからウイルススキャンを伴うファイルをwget1回で取得する

概要

Google Driveからwgetでファイルを取得する際、大きいサイズのファイルだとウイルススキャンが必要となりダイアログ認証のせいでうまく取得することができません。
Google Colaboratory等の場合、ローカルにおいてあるファイルをアップロードすることは可能ですが非常に時間がかかります。1つのファイルを送るためにGoogle Driveをマウントするのも手間です。

そこで今回は、ウイルススキャンを伴うサイズのファイルをGoogle Driveから1回のwgetで取得していきます。

サイズの小さいファイルの取得

サイズの小さいファイルをwgetで取得する方法は他の方の記事で取り上げられていますが、同じ方法でサイズの大きいファイルを取得しようとすると画像のように上手く取得できません。
画像では730MBの学習済みモデルの取得を試みましたが、実際に取得できているのは3.2KBです。

一般的なサイズの取得は下記の記述で行います。

wget "https://drive.google.com/uc?export=download&id=<共有リンクのファイルID>" -O <任意のファイル名.拡張子>

Qiita挿入画像_wget失敗_002.png

サイズの大きいファイルの取得

ウイルススキャンを伴う大きいサイズの取得は以下の記述で行います。
先程と同様に730MBの学習済みモデルの取得を行います。

wget --load-cookies /tmp/cookies.txt "https://drive.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://drive.google.com/uc?export=download&id=<共有リンクのファイルID>' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=<共有リンクのファイルID>" -O <任意のファイル名.拡張子> && rm -rf /tmp/cookies.txt

Qiita挿入画像_wget成功_003.png

1回のwgetで730MB全てを取得することができました。
今回はGoogle Colaboratory上で行いましたが、一般的なターミナル上でも取得できます。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
5