it-swarm.com.de

So laden Sie eine Google Drive-URL über curl oder wget herunter

Gibt es eine Möglichkeit, eine öffentlich sichtbare Google Drive-URL über curl oder wget herunterzuladen? Zum Beispiel in der Lage sein, etwas zu tun:

curl -O myfile.xls https://drive.google.com/uc?export=download&id=1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl

Hinweis: Ich versuche, dies in einer public-viewable -Datei zu tun, ohne sich bei meinem Google-Konto anmelden zu müssen (oder eine andere Person sich bei ihrem Konto anmelden usw.).

Wenn hilfreich, sind die Kopfzeilen der Kors, die ich habe:

 "kind": "drive#file",
 "id": "1Wb2NfKTQr_dLoFJH0GfM0cx-t4r07IVl",
9
David542

Sie müssen den Schalter -L verwenden, um die Weiterleitung von curl folgen zu lassen, und der richtige Schalter für den Dateinamen ist -o. Sie sollten auch die URL angeben:

 curl -L -o myfile.xls "https://drive.google.com/uc?export=download&id=0B4fk8L6brI_eX1U5Ui1Lb1FpVG8"
8

Wie wäre es mit dieser Methode? Wenn die Datei so groß ist, gibt Google einen Code zum Herunterladen der Datei zurück. Sie können die Datei mit dem Code herunterladen. Wenn eine solche große Datei mit curl heruntergeladen wird, können Sie den Code wie folgt anzeigen.

<a id="uc-download-link" class="goog-inline-block jfk-button jfk-button-action" href="/uc?export=download&amp;confirm=ABCD&amp;id=### file ID ###">download</a>

Die Abfrage mit confirm=ABCD ist wichtig für das Herunterladen der Datei. Dieser Code ist auch im Cookie enthalten. Im Cookie können Sie es wie folgt sehen.

#HttpOnly_.drive.google.com TRUE    /uc TRUE    #####   download_warning_#####  ABCD

In diesem Fall ist "ABCD" der Code. Um den Code aus dem Cookie abzurufen und die Datei herunterzuladen, können Sie das folgende Skript verwenden.

Beispielskript:

#!/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}

Wenn dies für Sie nicht nützlich war, tut es mir leid.

29
Tanaike

Einfachster und bester Weg (mit einem echten Google Drive-Dateibeispiel)

  1. Installieren Sie gdown mit pip

    • Befehl - pip install gdown
  2. Angenommen, ich möchte cnn_stories.tgz von Google Drive herunterladen

    • Download-Link: https://drive.google.com/uc?export=download&id=0BwmD_VLjROrfTHk4NFg2SndKcjQ
  3. Bitte beachten Sie den id URL-Parameter 0BwmD_VLjROrfTHk4NFg2SndKcjQ im Link

  4. Das ist es! Laden Sie die Datei mit gdown herunter

    • gdown --id 0BwmD_VLjROrfTHk4NFg2SndKcjQ --output cnn_stories.tgz


TLDR: gdown --id {gdrive_file_id} --output {file_name}


Befehlszeilenargumente:

--id : Google drive file ID

--output: Output File name

5
Adithya Upadhya

Ich habe gerade die Antwort von @tanaike geprüft und es wirkt wie ein Zauber. Die von @Martin Broadhurst vorgeschlagene und vom Topicstarter akzeptierte Lösung stimmt jedoch nicht.

Da Google die Warnung vor der Virensuche anzeigt, die verarbeitet werden muss, ist ein Soc-Skript erforderlich.

Ich möchte für die Antwort von @tanaike stimmen, habe aber nicht genug Ruf, um dies zu tun :)

Für diejenigen, die nicht wissen, wie sie die ID einer Datei auf Google Drive erhalten, möchte ich dieses ziemlich einfache Wissen weitergeben.

  1. gehe zu deinem gDrive
  2. Rechtsklick darauf und "Share Option" auswählen
  3. öffentliche Freigabe für alle wählen, die einen Link ohne Login haben
  4. kopieren Sie die URL https://drive.google.com/file/d/1FNUZiDDDDDSSSSAAAAAdv42Qgzb6n8d/view?usp=sharing

  5. fügen Sie es in einen Notizblock ein

  6. ID ist Teil der URL: 1FNUZiDDDDDSSSSSSAAAAAdv42Qgzb6n8d

Genießen!

2
Konstantyn

Einfach

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

Quelle

1
Amr Lotfy