curlまたはwgetを介して一般公開されているGoogleドライブのURLをダウンロードする方法はありますか?たとえば、次のようなことができます。
curl -O myfile.xls https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl
注:私は、Googleアカウントにサインインする(または他の誰かにアカウントにサインインさせるなど)ことなく、パブリックに閲覧可能なファイルでこれを実行しようとしています。
役立つ場合、私が持っているcorsヘッダーは次のとおりです。
"kind": "drive#file",
"id": "1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl",
この方法はどうですか?ファイルが非常に大きい場合、Googleはファイルをダウンロードするためのコードを返します。コードを使用してファイルをダウンロードできます。curlを使用してこのような大きなファイルをダウンロードすると、次のようなコードが表示されます。
<a id="uc-download-link" class="goog-inline-block jfk-button jfk-button-action" href="/uc?export=download&confirm=ABCD&id=### file ID ###">download</a>
でのクエリconfirm=ABCD
は、ファイルをダウンロードするために重要です。このコードはCookieにも含まれています。Cookieでは、次のように表示されます。
#HttpOnly_.drive.google.com TRUE /uc TRUE ##### download_warning_##### ABCD
この場合、「ABCD」がコードです。Cookieからコードを取得してファイルをダウンロードするには、次のスクリプトを使用できます。
#!/bin/bash
fileid="### file id ###"
filename="MyFile.csv"
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}
これが役に立たなかったとしたら、ごめんなさい。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加