Ich versuche, eine Datei von Google Drive in einem Skript herunterzuladen, und ich habe ein paar Probleme damit. Die Dateien, die ich herunterladen möchte, sind hier .
Ich habe ausführlich online gesucht und es ist mir endlich gelungen, eine davon zum Download zu bekommen. Ich habe die UIDs der Dateien erhalten und die kleinere (1.6MB) läd gut, aber die größere Datei (3.7GB) leitet immer auf eine Seite weiter, die mich fragt, ob ich mit dem Download ohne Virenprüfung fortfahren möchte. Kann mir jemand helfen, an diesem Bildschirm vorbeizukommen?
So habe ich die erste Datei zum Laufen gebracht -
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ühren,
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
Ich bekomme die folgende Ausgabe -
Ich bemerke in der vorletzten Zeile des Links, dass es einen &confirm=JwkK
gibt, der eine zufällige 4-stellige Zeichenfolge ist, aber es gibt eine Möglichkeit, meiner URL eine Bestätigung hinzuzufügen. Einer der Links, die ich besuchte, schlug &confirm=no_antivirus
vor, aber das funktioniert nicht.
Ich hoffe jemand kann hier helfen!
Danke im Voraus.
Schauen Sie sich diese Frage an: Direkter Download von Google Drive über Google Drive API
Grundsätzlich müssen Sie ein öffentliches Verzeichnis erstellen und auf Ihre Dateien durch relativen Verweis mit so etwas zugreifen
wget https://googledrive.com/Host/LARGEPUBLICFOLDERID/index4phlat.tar.gz
WARNUNG: Diese Funktionalität ist veraltet. Siehe die Warnung unten in den Kommentaren.
Alternativ können Sie dieses Skript verwenden: https://github.com/circulosmeos/gdown.pl
Ich habe ein Python-Snippet geschrieben, das eine Datei von Google Drive herunterlädt, wenn ein gemeinsam nutzbarer Link vorhanden ist. Es funktioniert, Stand August 2017.
Das Snipping verwendet weder gdrive noch die Google Drive API. Es verwendet das Modul Requests .
Beim Herunterladen großer Dateien von Google Drive reicht eine einzige GET-Anforderung nicht aus. Eine zweite wird benötigt und dieser hat einen zusätzlichen URL-Parameter namens confirm, dessen Wert dem Wert eines bestimmten Cookies entsprechen sollte.
import requests
def download_file_from_google_drive(id, destination):
def get_confirm_token(response):
for key, value in response.cookies.items():
if key.startswith('download_warning'):
return value
return None
def save_response_content(response, destination):
CHUNK_SIZE = 32768
with open(destination, "wb") as f:
for chunk in response.iter_content(CHUNK_SIZE):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
URL = "https://docs.google.com/uc?export=download"
session = requests.Session()
response = session.get(URL, params = { 'id' : id }, stream = True)
token = get_confirm_token(response)
if token:
params = { 'id' : id, 'confirm' : token }
response = session.get(URL, params = params, stream = True)
save_response_content(response, destination)
if __== "__main__":
import sys
if len(sys.argv) is not 3:
print("Usage: python google_drive.py drive_file_id destination_file_path")
else:
# TAKE ID FROM SHAREABLE LINK
file_id = sys.argv[1]
# DESTINATION FILE ON YOUR DISK
destination = sys.argv[2]
download_file_from_google_drive(file_id, destination)
Sie können das Open-Source-Linux/Unix-Befehlszeilentool gdrive
verwenden.
So installieren Sie es:
Download die Binärdatei. Wählen Sie die für Ihre Architektur passende aus, zum Beispiel gdrive-linux-x64
.
Kopiere es in deinen Pfad.
Sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
Sudo chmod a+x /usr/local/bin/gdrive;
Um es zu benutzen:
Ermitteln 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 etwas wie https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H
zurückgegeben. Besorgen Sie sich den String hinter dem ?id=
und kopieren Sie ihn in Ihre Zwischenablage. Das ist die ID der Datei.
Laden Sie die Datei herunter. Verwenden Sie die ID Ihrer Datei natürlich stattdessen im folgenden Befehl.
gdrive download 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
Bei der ersten Verwendung muss das Tool Zugriffsberechtigungen für die Google Drive-API erhalten. Zu diesem Zweck wird ein Link angezeigt, den Sie in einem Browser aufrufen müssen. Anschließend erhalten Sie einen Bestätigungscode, den Sie in das Tool kopieren und einfügen können. Der Download startet dann automatisch. Es gibt keine Fortschrittsanzeige, aber Sie können den Fortschritt in einem Dateimanager oder einem zweiten Terminal beobachten.
Source:Ein Kommentar von Tobi zu einer anderen Antwort hier.
Zusätzlicher Trick: Ratenbegrenzung. Zum Herunterladen mit gdrive
mit einer begrenzten maximalen Rate (um das Netzwerk nicht zu überschwemmen ...), können Sie einen Befehl wie diesen verwenden (pv
ist PipeViewer ):
gdrive download --stdout 0B7_OwkDsUIgFWXA1B2FPQfV5S8H | \
pv -br -L 90k | \
cat > file.ext
Dies zeigt die heruntergeladene Datenmenge (-b
) und die Downloadrate (-r
) an und begrenzt diese Rate auf 90 kiB/s (-L 90k
).
ggID='put_googleID_here'
ggURL='https://drive.google.com/uc?export=download'
filename="$(curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" | grep -o '="uc-name.*</span>' | sed 's/.*">//;s/<.a> .*//')"
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"
curl -Lb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}" -o "${filename}"
Wie funktioniert es?
Mit curl Cookie-Datei und HTML-Code abrufen.
Pipe html an grep und sed und suche nach Dateinamen.
Bestätigungscode aus der Cookie-Datei mit awk abrufen.
Schließlich Datei mit aktiviertem Cookie herunterladen, Code und Dateiname bestätigen.
curl -Lb /tmp/gcokie "https://drive.google.com/uc?export=download&confirm=Uq6r&id=0B5IRsLTwEO6CVXFURmpQZ1Jxc0U" -o "SomeBigFile.Zip"
Wenn Sie keine Dateinamenvariable curl benötigen, können Sie dies erraten
- L Folgen Sie den Weiterleitungen
- O Name der Fernbedienung
- J Name des Remote-Headers
curl -sc /tmp/gcokie "${ggURL}&id=${ggID}" >/dev/null
getcode="$(awk '/_warning_/ {print $NF}' /tmp/gcokie)"
curl -LOJb /tmp/gcokie "${ggURL}&confirm=${getcode}&id=${ggID}"
Um die Google-Datei-ID aus der URL zu extrahieren, können Sie Folgendes verwenden:
echo "gURL" | egrep -o '(\w|-){26,}'
# match more than 26 Word characters
ODER
echo "gURL" | sed 's/[^A-Za-z0-9_-]/\n/g' | sed -rn '/.{26}/p'
# replace non-Word characters with new line,
# print only line with more than 26 Word characters
Juni 2018 Der einfachste Weg, der für mich funktioniert
pip install gdown
Der file_id
sollte ungefähr wie 0Bz8a_Dbh9QhbNU3SGlFaDg aussehen
Sie können es erhalten, indem Sie mit der rechten Maustaste auf die Datei klicken und dann Get shareable link. Getestet bei Open Access-Dateien. Ich bin nicht sicher, ob es für das Verzeichnis ..__ funktioniert. Getestet bei Google Colab.
Das Standardverhalten von google drive ist das Durchsuchen von Dateien auf Viren. Wenn die Datei zu groß ist, wird der Benutzer dazu aufgefordert, ihn zu benachrichtigen, dass die Datei nicht gescannt werden konnte.
Im Moment ist die einzige Lösung, die ich gefunden habe, die Freigabe der Datei mit dem Web und das Erstellen einer Webressource.
Zitat von der Google-Laufwerk-Hilfeseite:
Mit Drive können Sie Webressourcen wie HTML-, CSS- und Javascript-Dateien als Website anzeigen lassen.
So hosten Sie eine Webseite mit Laufwerk:
- Öffnen Sie Drive unter drive.google.com und wählen Sie eine Datei aus.
- Klicken Sie oben auf der Seite auf die Schaltfläche Share.
- Klicken Sie in der rechten unteren Ecke des Freigabefelds auf Advanced.
- Klicken Sie auf Ändern ....
- Wählen Sie On - Public im Internet und klicken Sie auf Speichern.
- Kopieren Sie vor dem Schließen des Freigabefelds die Dokument-ID von der URL in das Feld unter "Link to share". Die Dokument-ID ist eine Zeichenfolge aus Groß- und Kleinbuchstaben sowie Zahlen zwischen Schrägstrichen in der URL.
- Geben Sie die URL frei, die wie "www.googledrive.com/Host/[doc id" aussieht], wobei [doc id] durch die in Schritt 6 kopierte Dokument-ID ersetzt wird.
Jeder kann jetzt Ihre Webseite anzeigen.
Hier gefunden: 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:
https://drive.google.com/file/d/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U/view?usp=sharing
Dann kopierst du die Datei-ID und erstellst eine googledrive.com-linke, die folgendermaßen aussieht:
https://www.googledrive.com/Host/0B5IRsLTwEO6CVXFURmpQZ1Jxc0U
Stand März 2018.
Ich habe verschiedene Techniken aus anderen Antworten ausprobiert, um meine Datei (6 GB) direkt vom Google-Laufwerk in meine AWS ec2-Instanz herunterzuladen, aber keine davon funktioniert (möglicherweise weil sie alt sind).
Zur Information anderer habe ich es so erfolgreich gemacht:
https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
Kopieren Sie das unten stehende Skript in eine Datei. Es verwendet curl und verarbeitet das Cookie, um das Herunterladen der Datei zu automatisieren.
#!/bin/bash
fileid="FILEIDENTIFIER"
filename="FILENAME"
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}
Fügen Sie wie oben gezeigt den FILEIDENTIFIER in das Skript ein. Denken Sie daran, die doppelten Anführungszeichen einzuhalten!
myfile.Zip
).Sudo chmod +x download-gdrive.sh
ausführen.PS: Hier ist der Github-Gist für das oben gegebene Skript: https://Gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424
Hier ist ein schneller Weg, dies zu tun.
Stellen Sie sicher, dass der Link freigegeben ist und in etwa wie folgt aussieht:
https://drive.google.com/open?id=FILEID&authuser=0
Kopieren Sie dann diese FILEID und verwenden Sie sie so
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME
(wenn Sie es nur für einen einmaligen Download benötigen)
Sie sollten mit etwas wie enden:
curl 'https://doc-0s-80-docs.googleusercontent.com/docs/securesc/aa51s66fhf9273i....................blah blah blah...............gEIqZ3KAQ==' --compressed
Fügen Sie > my-file-name.extension
am Ende in die Konsole ein (andernfalls wird die Datei in die Konsole geschrieben), und drücken Sie die Eingabetaste :)
Keine Antwort schlägt vor, was für mich ab Dezember 2016 funktioniert ( source ):
curl -L https://drive.google.com/uc?id={FileID}
vorausgesetzt, die Google Drive-Datei wurde für diejenigen freigegeben, die über den Link verfügen, und {FileID}
ist die Zeichenfolge hinter ?id=
in der freigegebenen URL.
Obwohl ich nicht mit großen Dateien nachgesehen habe, glaube ich, dass es nützlich sein könnte, es zu wissen.
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 (zB Rechtsklick, Linkadresse kopieren)
Öffnen Sie ein Terminal. Wenn Sie auf einen anderen PC/Server/Computer herunterladen, sollten Sie an dieser Stelle SSH ausführen
Installieren Sie Links 2 (Debian/Ubuntu-Methode, verwenden Sie Ihre Distribution oder Ihr Betriebssystem-Äquivalent)
Sudo apt-get install links2
Fügen Sie den Link in Ihr Terminal ein und öffnen Sie ihn mit Links wie folgt:
links2 "paste url here"
Navigieren Sie mit den Pfeiltasten zu dem Download-Link in Links und drücken Sie Enter
Wählen Sie einen Dateinamen und es wird Ihre Datei heruntergeladen
Es gibt einen Open-Source-Client für mehrere Plattformen, geschrieben in Go: Laufwerk . Es ist ziemlich schön und voll ausgestattet und wird auch aktiv weiterentwickelt.
$ drive help pull
Name
pull - pulls remote changes from Google Drive
Description
Downloads content from the remote drive or modifies
local content to match that on your Google Drive
Note: You can skip checksum verification by passing in flag `-ignore-checksum`
* For usage flags: `drive pull -h`
Hier ist ein kleines bash-Skript, das ich heute geschrieben habe. Es funktioniert für große Dateien und kann auch teilweise abgerufene Dateien wieder aufnehmen. Es sind zwei Argumente erforderlich, das erste ist die file_id und das zweite ist der Name der Ausgabedatei. Die wichtigsten Verbesserungen gegenüber den vorherigen Antworten sind, dass sie für große Dateien geeignet sind und nur allgemein verfügbare Tools benötigen: bash, curl, tr, grep, du, cut und mv.
#!/usr/bin/env bash
fileid="$1"
destination="$2"
# try to download the file
curl -c /tmp/cookie -L -o /tmp/probe.bin "https://drive.google.com/uc?export=download&id=${fileid}"
probeSize=`du -b /tmp/probe.bin | cut -f1`
# did we get a virus message?
# this will be the first line we get when trying to retrive a large file
bigFileSig='<!DOCTYPE html><html><head><title>Google Drive - Virus scan warning</title><meta http-equiv="content-type" content="text/html; charset=utf-8"/>'
sigSize=${#bigFileSig}
if (( probeSize <= sigSize )); then
virusMessage=false
else
firstBytes=$(head -c $sigSize /tmp/probe.bin)
if [ "$firstBytes" = "$bigFileSig" ]; then
virusMessage=true
else
virusMessage=false
fi
fi
if [ "$virusMessage" = true ] ; then
confirm=$(tr ';' '\n' </tmp/probe.bin | grep confirm)
confirm=${confirm:8:4}
curl -C - -b /tmp/cookie -L -o "$destination" "https://drive.google.com/uc?export=download&id=${fileid}&confirm=${confirm}"
else
mv /tmp/probe.bin "$destination"
fi
Dies funktioniert ab November 2017 https://Gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db
#!/bin/bash
SOURCE="$1"
if [ "${SOURCE}" == "" ]; then
echo "Must specify a source url"
exit 1
fi
DEST="$2"
if [ "${DEST}" == "" ]; then
echo "Must specify a destination filename"
exit 1
fi
FILEID=$(echo $SOURCE | rev | cut -d= -f1 | rev)
COOKIES=$(mktemp)
CODE=$(wget --save-cookies $COOKIES --keep-session-cookies --no-check-certificate "https://docs.google.com/uc?export=download&id=${FILEID}" -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/Code: \1\n/p')
# cleanup the code, format is 'Code: XXXX'
CODE=$(echo $CODE | rev | cut -d: -f1 | rev | xargs)
wget --load-cookies $COOKIES "https://docs.google.com/uc?export=download&confirm=${CODE}&id=${FILEID}" -O $DEST
rm -f $COOKIES
Basierend auf der Antwort von Roshan Sethia
Mai 2018
Verwenden vonWGET:
Erstellen Sie ein Shell-Skript mit dem Namen wgetgdrive.sh wie folgt:
#!/bin/bash
# Get files from Google Drive
# $1 = file ID
# $2 = file name
URL="https://docs.google.com/uc?export=download&id=$1"
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 $URL -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=$1" -O $2 && rm -rf /tmp/cookies.txt
Erteilen Sie die richtigen Berechtigungen, um das Skript auszuführen
Führen Sie im Terminal Folgendes aus:
./wgetgdrive.sh <file ID> <filename>
zum Beispiel:
./wgetgdrive.sh 1lsDPURlTNzS62xEOAIG98gsaW6x2PYd2 images.Zip
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
Hier ist ein Workaround, bei dem 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.
Verwenden Sie youtube-dl !
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890
Sie können auch --get-url
übergeben, um eine direkte Download-URL zu erhalten.
Nachdem ich mit diesem Müll rumgespielt habe. Ich habe eine Möglichkeit gefunden, meine süße Datei mithilfe von Chrome - Developer Tools herunterzuladen.
Rechtsklick -> Kopieren -> Als Curl kopieren
-o
hinzu, 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!
Sie müssen nur wget mit:
https://drive.google.com/uc?authuser=0&id=[your ID without brackets]&export=download
PD. Die Datei muss öffentlich sein.
Ich habe dafür eine funktionierende Lösung gefunden ... Verwenden Sie einfach das Folgende
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=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1HlzTR1-YVoBPlXo0gMFJ_xY4ogMnfzDi" -O besteyewear.Zip && rm -rf /tmp/cookies.txt
Holen Sie sich das Paket.
youtube-dl: https://rg3.github.io/youtube-dl/download.html
oder
Sudo python2.7 -m pip install --upgrade youtube_dl /// Sudo python3.6 -m pip install --upgrade youtube_dl
Erstellen Sie einen freigegebenen Link wie oben erwähnt
Link sharing on
Anyone with the link can access
Kopieren Sie den Link in ein Inkognito-Fenster: https://drive.google.com/a/hostname_here.com/file/d/kfjsdlkfjskljfkjskfjsskljfsjfklsjdf/view?usp=sharing
Der Link wird folgendermaßen geändert: https://drive.google.com/file/d/yuituyituiyuityuiutiuyituitiyuituiyuituyit/view
Klicken Sie auf Download
Es erscheint eine neue Seite
Klicken Sie mit der rechten Maustaste auf den Dateinamen-Link und kopieren Sie die Adresse
Zum Terminal gehen
Art:
youtube-dl https://drive.google.com/open?id=opopopopoppopop_nmnmnmnmnmnmnmn
[GoogleDrive] opopopopoppopop_nmnmnmnmnmnmnmn: Downloading webpage
[GoogleDrive] opopopopoppopop_nmnmnmnmnmnmnmn: Requesting source file
[download] Destination: your_file_name_here.Zip-opopopopoppopop_nmnmnmnmnmnmnmn.Zip
[download] 100% of 61.51MiB in 01:10
Ich hoffe es hilft
Holen Sie sich den gemeinsam nutzbaren Link und öffnen Sie ihn in inkognito (sehr wichtig) ..__ Es wird sagen, dass er nicht scannen kann.
Öffnen Sie den Inspector und verfolgen Sie den Netzwerkverkehr. Klicken Sie auf die Schaltfläche "Trotzdem herunterladen".
Kopieren Sie die URL der letzten Anfrage ... Dies ist Ihr Link. Verwenden Sie es in Wget.
skicka ist ein Cli-Tool zum Hochladen und Herunterladen von Zugriffsdateien von einem Google-Laufwerk.
beispiel -
skicka download /Pictures/2014 ~/Pictures.copy/2014
10 / 10 [=====================================================] 100.00 %
skicka: preparation time 1s, sync time 6s
skicka: updated 0 Drive files, 10 local files
skicka: 0 B read from disk, 16.18 MiB written to disk
skicka: 0 B uploaded (0 B/s), 16.18 MiB downloaded (2.33 MiB/s)
skicka: 50.23 MiB peak memory used
Mai 2018 ARBEITEN
Hallo basierend auf diesen Kommentaren ... Ich erstelle eine Bash, um eine Liste der URLs aus der Datei URLS.txt in eine URLS_DECODED.txt Zu exportieren, die in einem Beschleuniger wie Flashget verwendet wird (ich verwende cygwin Windows und Linux kombinieren)
Command Spider wurde eingeführt, um den Download zu vermeiden und den endgültigen Link zu erhalten (direkt)
Befehl GREP HEAD und CUT, Verarbeitung und Abruf der endgültigen Verknüpfung. Basiert in spanischer Sprache. Vielleicht könnten Sie einen Anschluss an ENGLISH LANGUAGE haben
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 entsprechend an.
rm -rf /home/**********user***********/URLS_DECODED.txt
COUNTER=0
while read p; do
string=$p
hash="${string#*id=}"
hash="${hash%&*}"
hash="${hash#*file/d/}"
hash="${hash%/*}"
let COUNTER=COUNTER+1
echo "Enlace "$COUNTER" id="$hash
URL_TO_DOWNLOAD=$(wget --spider --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='$hash -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id="$hash 2>&1 | grep *******Localización***********: | head -c-13 | cut -c16-)
rm -rf /tmp/cookies.txt
echo -e "$URL_TO_DOWNLOAD\r" >> /home/**********user***********/URLS_DECODED.txt
echo "Enlace "$COUNTER" URL="$URL_TO_DOWNLOAD
done < /home/**********user***********/URLS.txt
Mai 2018
Wenn Sie mit curl
eine Datei von Google Drive herunterladen möchten, benötigen Sie neben der Datei-ID im Laufwerk auch einen OAuth2 access_token
für die Google Drive-API. Das Token abrufen umfasst mehrere Schritte mit dem Google API-Framework. Die Anmeldeschritte bei Google sind (derzeit) kostenlos.
Ein OAuth2 access_token erlaubt potenziell alle Arten von Aktivitäten, seien Sie also vorsichtig. Das Token läuft nach kurzer Zeit ab (1 Stunde?), Aber nicht kurz genug, um Missbrauch zu verhindern, wenn jemand es erfasst.
Sobald Sie ein access_token und die fileid haben, wird dies funktionieren:
AUTH="Authorization: Bearer the_access_token_goes_here"
FILEID="fileid_goes_here"
URL=https://www.googleapis.com/drive/v3/files/$FILEID?alt=media
curl --header "$AUTH" $URL >myfile.ext
Siehe auch: Google Drive-APIs - REST - Dateien herunterladen
Ich habe dies mit einem python Skript und Google Drive API gemacht. Sie können dieses Snippet ausprobieren:
//using chunk download
file_id = 'someid'
request = drive_service.files().get_media(fileId=file_id)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print "Download %d%%." % int(status.progress() * 100)
Es gibt einen einfacheren Weg.
Installieren Sie Cliget/CURLWGET von Firefox/Chrome-Erweiterung.
Laden Sie die Datei vom Browser herunter. Dadurch wird ein Curl/Wget-Link erstellt, der die beim Herunterladen der Datei verwendeten Cookies und Header speichert. Verwenden Sie diesen Befehl aus einer beliebigen Shell zum Herunterladen