Ich versuche, eine Datei in einem Skript von Google Drive herunterzuladen, und habe dabei ein kleines Problem. Die Dateien, die ich herunterladen möchte, sind hier .
Ich habe mich intensiv online umgesehen und es endlich geschafft, einen davon zum Download zu bringen. Ich habe die UIDs der Dateien erhalten und die kleinere (1,6 MB) wird problemlos heruntergeladen. Die größere Datei (3,7 GB) leitet jedoch immer zu einer Seite weiter, auf der ich gefragt werde, ob ich den Download ohne Virenscan fortsetzen möchte. Könnte mir jemand helfen, diesen Bildschirm zu überwinden?
Hier ist, wie ich die erste Datei zum Laufen gebracht habe -
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz
Wenn ich dasselbe auf der anderen Datei ausführe,
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
Ich bekomme folgende Ausgabe -
Ich stelle in der vorletzten Zeile des Links fest, dass es sich &confirm=JwkK
um eine zufällige 4-stellige Zeichenfolge handelt, die jedoch eine Möglichkeit bietet, meiner URL eine Bestätigung hinzuzufügen. Einer der von mir besuchten Links schlug vor, &confirm=no_antivirus
aber das funktioniert nicht.
Ich hoffe jemand hier kann dabei helfen!
curl script
Sie die Datei heruntergeladen haben,google drive
da ich keine Arbeitsdatei (Bild) von diesem Skript herunterladen kanncurl -u username:pass https://drive.google.com/open?id=0B0QQY4sFRhIDRk1LN3g2TjBIRU0 >image.jpg
gdown.pl https://drive.google.com/uc?export=download&confirm=yAjx&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM index4phlat.tar.gz
Antworten:
WARNUNG : Diese Funktionalität ist veraltet. Siehe Warnung unten in den Kommentaren.
Schauen Sie sich diese Frage an: Direkter Download von Google Drive mithilfe der Google Drive-API
Grundsätzlich müssen Sie ein öffentliches Verzeichnis erstellen und auf Ihre Dateien durch relative Referenz mit so etwas zugreifen
Alternativ können Sie dieses Skript verwenden: https://github.com/circulosmeos/gdown.pl
quelle
export=download
sodass es auf absehbare Zeit gut sein sollte, es sei denn, Google ändert dieses URL-SchemaJuni 2020
pip install gdown
Das
file_id
sollte ungefähr so aussehen wie 0Bz8a_Dbh9QhbNU3SGlFaDgSie können es erhalten, indem Sie mit der rechten Maustaste auf die Datei klicken und dann auf den gemeinsam nutzbaren Link klicken. Arbeiten Sie nur mit Open-Access-Dateien (Jeder, der einen Link hat, kann anzeigen). Funktioniert nicht für Verzeichnisse. Getestet auf Google Colab. Funktioniert am besten beim Herunterladen von Dateien. Verwenden Sie tar / zip, um eine einzelne Datei zu erstellen.
Beispiel: Zum Herunterladen der Readme-Datei aus diesem Verzeichnis
quelle
export=download&
ausgdown https://drive.google.com/uc?export=download&id=your_file_id
und es funktioniert wie CharmeIch habe ein Python-Snippet geschrieben, das eine Datei von Google Drive mit einem gemeinsam nutzbaren Link herunterlädt . Es funktioniert ab August 2017 .
Das Snipped verwendet weder gdrive noch die Google Drive-API. Es verwendet das Anforderungsmodul .
Beim Herunterladen großer Dateien von Google Drive reicht eine einzige GET-Anforderung nicht aus. Ein zweiter wird benötigt, und dieser hat einen zusätzlichen URL-Parameter namens " Bestätigen" , dessen Wert dem Wert eines bestimmten Cookies entsprechen sollte.
quelle
python snippet.py file_id destination
. Ist dies die richtige Art, es auszuführen? Ursache Wenn das Ziel ein Ordner ist, wird ein Fehler ausgegeben. Wenn ich eine Datei zäh mache und diese als Ziel verwende, scheint das Snippet gut zu funktionieren, tut dann aber nichts.$ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx
für mich funktioniert hat. Falls dies nicht funktioniert, haben Sie eine Ausgabe bereitgestellt? Wird eine Datei erstellt?Sie können das Open Source Linux / Unix-Befehlszeilentool verwenden
gdrive
.So installieren Sie es:
Laden Sie die Binärdatei herunter . Wählen Sie beispielsweise diejenige, die zu Ihrer Architektur passt
gdrive-linux-x64
.Kopieren Sie es in Ihren Pfad.
Um es zu benutzen:
Bestimmen Sie die Google Drive-Datei-ID. Klicken Sie dazu mit der rechten Maustaste auf die gewünschte Datei auf der Google Drive-Website und wählen Sie "Link abrufen ...". Es wird so etwas wie zurückgeben
https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H
. Besorgen Sie sich die Zeichenfolge hinter?id=
und kopieren Sie sie in Ihre Zwischenablage. Das ist die ID der Datei.Laden Sie die Datei herunter. Verwenden Sie stattdessen stattdessen die ID Ihrer Datei im folgenden Befehl.
Bei der ersten Verwendung muss das Tool Zugriffsberechtigungen für die Google Drive-API erhalten. Dazu wird Ihnen ein Link angezeigt, den Sie in einem Browser besuchen müssen, und Sie erhalten einen Bestätigungscode zum Kopieren und Einfügen in das Tool. Der Download startet dann automatisch. Es gibt keine Fortschrittsanzeige, aber Sie können den Fortschritt in einem Dateimanager oder einem zweiten Terminal beobachten.
Quelle: Ein Kommentar von Tobi zu einer anderen Antwort hier.
Zusätzlicher Trick: Ratenbegrenzung. Zum Herunterladen mit
gdrive
einer begrenzten Höchstrate (um das Netzwerk nicht zu überfluten …) können Sie einen Befehl wie diesen verwenden (pv
ist PipeViewer ):Dies zeigt die Menge der heruntergeladenen Daten (
-b
) und die Download-Rate (-r
) an und begrenzt diese Rate auf 90 kiB / s (-L 90k
).quelle
Wie funktioniert es?
Holen Sie sich Cookie-Datei und HTML-Code mit Curl.
Pipe HTML zu grep und sed und suche nach Dateinamen.
Holen Sie sich mit awk den Bestätigungscode aus der Cookie-Datei.
Laden Sie zum Schluss die Datei mit aktiviertem Cookie herunter, bestätigen Sie den Code und den Dateinamen.
Wenn Sie keinen Dateinamen benötigen, kann die Variable curl dies erraten.
-L Folgen Sie den Weiterleitungen.
-O Remote-Name
-J Remote-Header-Name
So extrahieren Sie die Google-Datei-ID aus der URL:
ODER
quelle
--insecure
Option zu beiden Curl-Anforderungen hinzufügen , damit es funktioniert.Update ab März 2018.
Ich habe verschiedene Techniken ausprobiert, die in anderen Antworten angegeben sind, um meine Datei (6 GB) direkt von Google Drive auf meine AWS ec2-Instanz herunterzuladen, aber keine davon funktioniert (möglicherweise, weil sie alt sind).
Zur Information anderer, hier ist, wie ich es erfolgreich gemacht habe:
https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
Kopieren Sie das folgende Skript in eine Datei. Es verwendet Curl und verarbeitet das Cookie, um das Herunterladen der Datei zu automatisieren.
Fügen Sie wie oben gezeigt den FILEIDENTIFIER in das Skript ein. Denken Sie daran, die doppelten Anführungszeichen zu halten!
myfile.zip
).sudo chmod +x download-gdrive.sh
.PS: Hier ist der Github-Inhalt für das oben angegebene Skript: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424
quelle
-c
mit--save-cookies
und-b
mit--load-cookies
"
Anführungszeichen hinzufügen${filename}
../download-gdrive.sh" Do not be like me and try to run the script by typing
download-gdrive.sh aus, the
. / `Scheint obligatorisch zu sein.Hier ist ein schneller Weg, dies zu tun.
Stellen Sie sicher, dass der Link freigegeben ist und ungefähr so aussieht:
https://drive.google.com/open?id=FILEID&authuser=0
Kopieren Sie dann diese DATEI und verwenden Sie sie wie folgt
quelle
wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
-r
Flagge von verwendet wirdwget
. So ist eswget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Das Standardverhalten von Google Drive besteht darin, Dateien auf Viren zu scannen. Wenn die Datei zu groß ist, wird der Benutzer dazu aufgefordert und benachrichtigt, dass die Datei nicht gescannt werden konnte.
Im Moment besteht die einzige Problemumgehung darin, die Datei für das Web freizugeben und eine Webressource zu erstellen.
Zitat von der Google Drive-Hilfeseite:
Mit Drive können Sie Webressourcen wie HTML-, CSS- und Javascript-Dateien als Website anzeigen.
So hosten Sie eine Webseite mit Drive:
Hier zu finden: https://support.google.com/drive/answer/2881970?hl=de
Wenn Sie beispielsweise eine Datei auf Google Drive öffentlich freigeben, sieht der Sharelink folgendermaßen aus:
Dann kopieren Sie die Datei-ID und erstellen eine googledrive.com-Linke, die folgendermaßen aussieht:
quelle
Der einfache Weg:
(wenn Sie es nur für einen einmaligen Download benötigen)
Sie sollten mit etwas enden wie:
Fügen Sie es in Ihre Konsole ein, fügen Sie
> my-file-name.extension
es am Ende hinzu (andernfalls wird die Datei in Ihre Konsole geschrieben) und drücken Sie die Eingabetaste :)quelle
Basierend auf der Antwort von Roshan Sethia
Mai 2018
Verwenden von WGET :
Erstellen Sie ein Shell-Skript mit dem Namen wgetgdrive.sh wie folgt:
Geben Sie die richtigen Berechtigungen zum Ausführen des Skripts
Führen Sie im Terminal Folgendes aus:
beispielsweise:
quelle
chmod 770 wgetgdrive.sh
--AKTUALISIERT--
Um die Datei zuerst herunterzuladen, holen Sie sich
youtube-dl
hier Python:youtube-dl: https://rg3.github.io/youtube-dl/download.html
oder installieren Sie es mit
pip
:AKTUALISIEREN:
Ich habe gerade Folgendes herausgefunden:
Klicken Sie mit der rechten Maustaste auf die Datei, die Sie von drive.google.com herunterladen möchten
Klicken
Get Sharable link
Umschalten
Link sharing on
Klicke auf
Sharing settings
Klicken Sie auf die obere Dropdown-Liste, um Optionen anzuzeigen
Klicken Sie auf Mehr
Wählen
[x] On - Anyone with a link
Link kopieren
Kopieren Sie die ID nach
https://drive.google.com/file/d/
:Fügen Sie dies in die Befehlszeile ein:
Fügen Sie die ID dahinter ein
open?id=
Ich hoffe es hilft
quelle
Keine Antwort schlägt vor, was für mich ab Dezember 2016 funktioniert ( Quelle ):
vorausgesetzt, die Google Drive-Datei wurde für diejenigen freigegeben, die den Link haben, und
{FileID}
ist die Zeichenfolge?id=
in der freigegebenen URL.Obwohl ich nicht mit riesigen Dateien nachgesehen habe, glaube ich, dass es nützlich sein könnte, dies zu wissen.
quelle
curl -L -o {filename} https://drive.google.com/uc?id={FileID}
hat für mich gearbeitet, danke!Der einfachste Weg ist:
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
quelle
Die obigen Antworten sind für April 2020 veraltet, da Google Drive jetzt eine Umleitung zum tatsächlichen Speicherort der Datei verwendet.
Arbeiten ab April 2020 unter macOS 10.15.4 für öffentliche Dokumente:
quelle
download-google-2
funktioniert bei mir. Meine Datei ist 3G groß. Thanks @ danieltan95download-google-2
die letzte Locke auf diese aktualisiertcurl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;
und kann nun den Download fortsetzen.Ich hatte das gleiche Problem mit Google Drive.
Hier ist, wie ich das Problem mit Links 2 gelöst habe .
Öffnen Sie einen Browser auf Ihrem PC und navigieren Sie zu Ihrer Datei in Google Drive. Geben Sie Ihrer Datei einen öffentlichen Link.
Kopieren Sie den öffentlichen Link in Ihre Zwischenablage (z. B. Rechtsklick, Linkadresse kopieren).
Öffnen Sie ein Terminal. Wenn Sie auf einen anderen PC / Server / Computer herunterladen, sollten Sie als Punkt SSH darauf ausführen
Installieren Sie Links 2 (Debian / Ubuntu-Methode, verwenden Sie Ihre Distribution oder das entsprechende Betriebssystem)
sudo apt-get install links2
Fügen Sie den Link in Ihr Terminal ein und öffnen Sie ihn mit folgenden Links:
links2 "paste url here"
Navigieren Sie mit Ihren Pfeiltasten zum Download-Link unter Links und drücken Sie Enter
Wählen Sie einen Dateinamen und Ihre Datei wird heruntergeladen
quelle
Links
total den Trick gemacht! Und es ist viel viel besser alsw3m
Benutze youtube-dl !
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890
Sie können auch übergeben
--get-url
, um eine direkte Download-URL zu erhalten.quelle
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage
. Vielleicht haben Sie eine veraltete Version vonyoutube-dl
oder das Link-Format wird von ihr aus irgendeinem Grund nicht erkannt ... Versuchen Sie, das obige Format zu verwenden, indem Sie die ID durch die Datei-ID Ihrer ursprünglichen URLIch habe das Curl-Snippet von @ Amit Chahar verwendet , das in diesem Thread eine gute Antwort gepostet hat . Ich fand es nützlich, es in eine Bash-Funktion anstatt in eine separate
.sh
Datei zu setzen~/.bashrc
Dies kann zB in a enthalten sein (nach der Beschaffung natürlich, wenn nicht automatisch beschafft) und auf folgende Weise verwendet werdenquelle
Es gibt einen Open-Source-Client für mehrere Plattformen, der in Go: drive geschrieben ist . Es ist sehr schön und mit allen Funktionen ausgestattet und befindet sich ebenfalls in der aktiven Entwicklung.
quelle
Alle oben genannten Antworten scheinen die Einfachheit der Antwort zu verschleiern oder weisen einige Nuancen auf, die nicht erklärt werden.
Wenn die Datei öffentlich freigegeben wird, können Sie einen direkten Download-Link generieren, indem Sie nur die Datei-ID kennen. Die URL muss die Form " https://drive.google.com/uc?id=[FILEID‹&export=download " haben. Dies funktioniert ab dem 22.11.2019. Dies erfordert nicht, dass sich der Empfänger bei Google anmeldet, sondern dass die Datei öffentlich freigegeben wird.
Navigieren Sie in Ihrem Browser zu drive.google.com.
Klicken Sie mit der rechten Maustaste auf die Datei und klicken Sie auf "Gemeinsam nutzbaren Link abrufen".
Bearbeiten Sie die URL so, dass sie das folgende Format hat, und ersetzen Sie "[FILEID]" durch die ID Ihrer freigegebenen Datei:
https://drive.google.com/uc?id=[FILEID‹&export=download
Das ist Ihr direkter Download-Link. Wenn Sie in Ihrem Browser darauf klicken, wird die Datei nun in Ihren Browser "verschoben". Dadurch wird der Download-Dialog geöffnet, in dem Sie die Datei speichern oder öffnen können. Sie können diesen Link auch in Ihren Download-Skripten verwenden.
Der entsprechende Curl-Befehl wäre also:
quelle
Google Drive can't scan this file for viruses. <filename> is too large for Google to scan for viruses. Would you still like to download this file?
Ich war nicht in der Lage, Nanoix 'Perl-Skript oder andere Curl-Beispiele, die ich gesehen hatte, zum Laufen zu bringen, also fing ich an, die API selbst in Python zu untersuchen. Dies funktionierte gut für kleine Dateien, aber große Dateien erstickten an verfügbarem RAM, sodass ich einen anderen netten Chunking-Code fand, der die Fähigkeit der API zum teilweisen Herunterladen nutzt. Wesentlich hier: https://gist.github.com/csik/c4c90987224150e4a0b2
Beachten Sie das Bit zum Herunterladen der json-Datei client_secret von der API-Schnittstelle in Ihr lokales Verzeichnis.
Quellequelle
Hier ist ein kleines Bash-Skript, das ich geschrieben habe und das heute funktioniert. Es funktioniert mit großen Dateien und kann auch teilweise abgerufene Dateien wieder aufnehmen. Es werden zwei Argumente benötigt, das erste ist die Datei-ID und das zweite ist der Name der Ausgabedatei. Die Hauptverbesserungen gegenüber früheren Antworten sind, dass es für große Dateien funktioniert und nur allgemein verfügbare Tools benötigt: bash, curl, tr, grep, du, cut und mv.
quelle
Dies funktioniert ab November 2017 unter https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db
quelle
Nach dem Herumspielen mit diesem Müll. Ich habe einen Weg gefunden, meine süße Datei mithilfe von Chrome-Entwicklertools herunterzuladen.
Es zeigt Ihnen die Anfrage in der "Netzwerk" -Konsole
Klicken Sie mit der rechten Maustaste -> Kopieren -> Als Locke kopieren
-o
, um eine exportierte Datei zu erstellen.curl 'https://docs.google.com/spreadsheets/d/1Cjsryejgn29BDiInOrGZWvg/export?format=xlsx&id=1Cjsryejgn29BDiInOrGZWvg' -H 'authority: docs.google.com' -H 'upgrade-insecure-requests: 1' -H 'user-agent: Mozilla/5.0 (X..... -o server.xlsx
Gelöst!
quelle
Hier ist eine Problemumgehung, bei der ich Dateien von Google Drive auf meine Google Cloud Linux-Shell heruntergeladen habe.
googledrive.com/host/[ID]
wget https://googledrive.com/host/[ID]
mv [ID] 1.zip
1.zip entpacken
Wir werden die Dateien bekommen.
quelle
Ich habe eine funktionierende Lösung dafür gefunden ... Verwenden Sie einfach Folgendes
quelle
Es gibt einen einfacheren Weg.
Installieren Sie cliget / CURLWGET von der Firefox / Chrome-Erweiterung.
Laden Sie die Datei aus dem Browser herunter. Dadurch wird ein Curl / Wget-Link erstellt, der sich an die Cookies und Header erinnert, die beim Herunterladen der Datei verwendet wurden. Verwenden Sie diesen Befehl von einer beliebigen Shell zum Herunterladen
quelle
Mit der einfachen Möglichkeit, Dateien von Google Drive herunterzufahren, können Sie auch Dateien auf Colab herunterladen
Dann
oder
Dokument https://pypi.org/project/gdown/
quelle
Mai 2018 ARBEITEN
Hallo, basierend auf diesen Kommentaren ... Ich erstelle eine Bash, um eine Liste von URLs aus der Datei URLS.txt in eine URLS_DECODED.txt zu exportieren, die in einem Beschleuniger wie Flashget verwendet wird (ich verwende Cygwin, um Windows und Linux zu kombinieren).
Command Spider wurde eingeführt, um das Herunterladen zu vermeiden und den endgültigen Link (direkt) zu erhalten.
Befehl GREP HEAD und CUT, verarbeite und erhalte den endgültigen Link. Basiert auf spanischer Sprache. Vielleicht könntest du auf ENGLISH LANGUAGE portieren
echo -e "$URL_TO_DOWNLOAD\r"
wahrscheinlich ist das \ r nur cywin und muss durch ein \ n (break line) ersetzt werden**********user***********
ist der Benutzerordner*******Localización***********
ist in spanischer Sprache, löschen Sie die Sternchen und lassen Sie das Wort in Englisch Location und passen Sie THE HEAD und die CUT-Nummern an, um einen angemessenen Ansatz zu finden.quelle
Sie müssen nur wget verwenden mit:
PD. Die Datei muss öffentlich sein.
quelle
skicka ist ein CLI-Tool zum Hochladen und Herunterladen von Zugriffsdateien von einem Google-Laufwerk.
Beispiel -
quelle