web-dev-qa-db-ja.com

特定のファイルの公開リンクを作成せずに、wgetを使用してGoogleドライブに保存されているファイルをダウンロードするにはどうすればよいですか?

最初にファイルを公開して共有可能にします:-
小さなファイルのダウンロードに使用します

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME

大きなファイルの場合

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt

しかし、公に共有可能なリンクを作成せずにそれを行うにはどうすればよいですか?

注:wgetは私にとって必須ではありません。他のソフトウェアを知っている場合は、私をお勧めしますが、次の機能が含まれている必要があります。

  1. コマンドラインベース
  2. ダウンロードファイルの再開機能
  3. 軽量で持ち運び可能(可能であれば、必須ではありません)
  4. マルチスレッドのダウンロードとファイルの追加機能(可能であれば、必須ではありません)
1
sub1996

rclonehttps://rclone.org/ を見てみてください

非常に完全な機能セットがあり、コマンドラインベース(構文はrsyncに非常に似ています)および Googleドライブをサポート OAuth経由です。まさにあなたが探しているものでなければなりません。

1
Next-Door Tech

getgoogleというbashスクリプトをPATHのどこかに作成します。/usr/local/binまたは〜/ bin(環境にマッピングしている場合)

#!/bin/bash
if [[ $1 == *"id="* ]]; then
    ID=${1##*'id='}
else
    ID=$1
fi
echo "Retrieving Google drive item with ID $ID"
wget --no-check-certificate -r "https://docs.google.com/uc?export=download&id=$ID" -O $(curl -s "https://drive.google.com/file/d/$ID/
view?usp=sharing" | grep -o '<title>.*</title>' | cut -d'>' -f2 | awk -F ' - Goo' '{print $1}')

次のコマンドを実行して保存した後、必ずgetgoogleスクリプトの権限を変更してください。

chmod u+x getgoogle

使用法:

getgoogle <URL|ID>

完全なリンクがURLであるか、識別子IDであるかにかかわらず、Googleドライブのアイテムをダウンロードし、ダウンロード時にGoogleドライブにアップロードされたファイルの元のファイル名に名前を変更します。

1
YJK

以前の多くの方法は機能しなくなりましたが、次の方法が引き続き機能することがわかりました(少なくとも今日は)。

wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILE_ID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILE_ID" -O FILE_NAME && rm -rf /tmp/cookies.txt

(FILE_IDとFILE_NAMEを、GoogleドライブのダウンロードリンクからのファイルIDと、ダウンロードするファイルの名前に置き換えます)

(回答は元々 https://silicondales.com/tutorials/g-suite/how-to-wget-files-from-google-drive/ )にあります

1
Michael Doron