J'essaie de télécharger un fichier à partir de Google Drive dans un script, et j'ai un peu de mal à le faire. Les fichiers que j'essaie de télécharger sont ici .
J'ai beaucoup cherché en ligne et j'ai finalement réussi à en télécharger un. J'ai obtenu les UID des fichiers et le plus petit (1,6 Mo) se télécharge bien, mais le fichier le plus gros (3,7 Go) redirige toujours vers une page qui me demande si je veux poursuivre le téléchargement sans analyse antivirus. Quelqu'un pourrait-il m'aider à passer cet écran?
Voici comment j'ai fait fonctionner le premier fichier -
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYeDU0VDRFWG9IVUE" > phlat-1.0.tar.gz
Quand je lance la même chose sur l'autre fichier,
curl -L "https://docs.google.com/uc?export=download&id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM" > index4phlat.tar.gz
J'obtiens la sortie suivante -
Je remarque sur la troisième à la dernière ligne du lien, il y a une &confirm=JwkK
chaîne aléatoire de 4 caractères, mais suggère qu'il existe un moyen d'ajouter une confirmation à mon URL. L'un des liens que j'ai visités m'a suggéré &confirm=no_antivirus
mais cela ne fonctionne pas.
J'espère que quelqu'un ici pourra vous aider!
curl script
vous avez utilisé pour télécharger le fichiergoogle drive
car je ne peux pas télécharger un fichier de travail (image) à partir de ce scriptcurl -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
Réponses:
AVERTISSEMENT : cette fonctionnalité est obsolète. Voir l'avertissement ci-dessous dans les commentaires.
Jetez un œil à cette question: Téléchargement direct depuis Google Drive à l'aide de l'API Google Drive
Fondamentalement, vous devez créer un répertoire public et accéder à vos fichiers par référence relative avec quelque chose comme
Vous pouvez également utiliser ce script: https://github.com/circulosmeos/gdown.pl
la source
export=download
donc cela devrait être bon dans un avenir prévisible à moins que Google ne modifie ce schéma d'URLJuin 2020
pip install gdown
Le
file_id
devrait ressembler à quelque chose comme 0Bz8a_Dbh9QhbNU3SGlFaDgVous pouvez l'obtenir en faisant un clic droit sur le fichier, puis en obtenant un lien partageable. Ne fonctionne que sur les fichiers en libre accès (toute personne disposant d'un lien peut afficher). Ne fonctionne pas pour les répertoires. Testé sur Google Colab. Fonctionne mieux sur le téléchargement de fichiers. Utilisez tar / zip pour en faire un seul fichier.
Exemple: pour télécharger le fichier readme depuis ce répertoire
la source
export=download&
degdown https://drive.google.com/uc?export=download&id=your_file_id
et cela fonctionne comme un charmeJ'ai écrit un extrait de code Python qui télécharge un fichier à partir de Google Drive, avec un lien partageable . Cela fonctionne, à partir d'août 2017 .
Le snipped n'utilise pas gdrive , ni l'API Google Drive. Il utilise le module de requêtes .
Lors du téléchargement de fichiers volumineux à partir de Google Drive, une seule requête GET n'est pas suffisante. Un deuxième est nécessaire, et celui-ci a un paramètre d'URL supplémentaire appelé confirm , dont la valeur doit être égale à la valeur d'un certain cookie.
la source
python snippet.py file_id destination
. Est-ce la bonne façon de l'exécuter? Parce que si la destination est un dossier, une erreur est générée. Si je durcis un fichier et que je l'utilise comme destination, l'extrait semble fonctionner correctement mais ne fait rien.$ python snippet.py your_google_file_id /your/full/path/and/filename.xlsx
fonctionné pour moi. au cas où cela ne fonctionne pas, avez-vous une sortie fournie? un fichier est-il créé?Vous pouvez utiliser l'outil de ligne de commande open source Linux / Unix
gdrive
.Pour l'installer:
Téléchargez le binaire. Choisissez par exemple celui qui correspond à votre architecture
gdrive-linux-x64
.Copiez-le sur votre chemin.
Pour l'utiliser:
Déterminez l'ID de fichier Google Drive. Pour cela, faites un clic droit sur le fichier souhaité dans le site Web de Google Drive et choisissez «Obtenir le lien…». Il renverra quelque chose comme
https://drive.google.com/open?id=0B7_OwkDsUIgFWXA1B2FPQfV5S8H
. Récupérez la chaîne derrière le?id=
et copiez-la dans votre presse-papiers. C'est l'ID du fichier.Téléchargez le fichier. Bien sûr, utilisez plutôt l'ID de votre fichier dans la commande suivante.
Lors de la première utilisation, l'outil devra obtenir des autorisations d'accès à l'API Google Drive. Pour cela, il vous montrera un lien que vous devez visiter dans un navigateur, puis vous obtiendrez un code de vérification à copier et coller dans l'outil. Le téléchargement démarre alors automatiquement. Il n'y a pas d'indicateur de progression, mais vous pouvez observer la progression dans un gestionnaire de fichiers ou un deuxième terminal.
Source: Un commentaire de Tobi sur une autre réponse ici.
Astuce supplémentaire: limitation de débit. Pour télécharger avec
gdrive
un débit maximal limité (pour ne pas submerger le réseau…), vous pouvez utiliser une commande comme celle-ci (pv
c'est PipeViewer ):Cela montrera la quantité de données téléchargées (
-b
) et le taux de téléchargement (-r
) et limitera ce taux à 90 kiB / s (-L 90k
).la source
Comment ça marche?
Obtenez le fichier cookie et le code html avec curl.
Dirigez le code HTML vers grep et sed et recherchez le nom du fichier.
Obtenez le code de confirmation du fichier cookie avec awk.
Enfin, téléchargez le fichier avec le cookie activé, confirmez le code et le nom de fichier.
Si vous n'avez pas besoin de la variable de nom de fichier, curl peut le deviner
-L Suivre les redirections
-O Nom
-distant -J Nom -en-tête-distant
Pour extraire l'ID de fichier google de l'URL, vous pouvez utiliser:
OU
la source
--insecure
option aux deux demandes curl pour que cela fonctionne.Mise à jour en mars 2018.
J'ai essayé diverses techniques données dans d'autres réponses pour télécharger mon fichier (6 Go) directement du lecteur Google vers mon instance AWS ec2, mais aucune d'entre elles ne fonctionne (peut-être parce qu'elles sont anciennes).
Donc, pour l'information des autres, voici comment je l'ai fait avec succès:
https://drive.google.com/file/d/FILEIDENTIFIER/view?usp=sharing
Copiez le script ci-dessous dans un fichier. Il utilise curl et traite le cookie pour automatiser le téléchargement du fichier.
Comme indiqué ci-dessus, collez le FILEIDENTIFIER dans le script. N'oubliez pas de garder les guillemets!
myfile.zip
).sudo chmod +x download-gdrive.sh
.PS: Voici l'essentiel de Github pour le script ci-dessus: https://gist.github.com/amit-chahar/db49ce64f46367325293e4cce13d2424
la source
-c
par--save-cookies
et-b
par--load-cookies
"
citations${filename}
sur la dernière ligne../download-gdrive.sh" Do not be like me and try to run the script by typing
download-gdrive.sh, the
. / `Semble être obligatoire.Voici un moyen rapide de le faire.
Assurez-vous que le lien est partagé et qu'il ressemblera à ceci:
https://drive.google.com/open?id=FILEID&authuser=0
Ensuite, copiez ce FILEID et utilisez-le comme ceci
la source
wget 'https://docs.google.com/uc?export=download&id=SECRET_ID' -O 'filename.pdf'
-r
drapeau dewget
. Il en est ainsiwget --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=FILE_ID' -O 'filename'
Le moyen le plus simple:
(si vous en avez juste besoin pour un téléchargement unique)
Vous devriez vous retrouver avec quelque chose comme:
Collez-le dans votre console, ajoutez
> my-file-name.extension
à la fin (sinon il écrira le fichier dans votre console), puis appuyez sur Entrée :)la source
Le comportement par défaut de Google Drive est d'analyser les fichiers à la recherche de virus si le fichier est trop volumineux, il avertira l'utilisateur et l'informera que le fichier n'a pas pu être analysé.
Pour le moment, la seule solution de contournement que j'ai trouvée est de partager le fichier avec le Web et de créer une ressource Web.
Citation de la page d'aide de Google Drive:
Avec Drive, vous pouvez rendre les ressources Web, telles que les fichiers HTML, CSS et Javascript, visibles en tant que site Web.
Pour héberger une page Web avec Drive:
Trouvé ici: https://support.google.com/drive/answer/2881970?hl=en
Ainsi, par exemple, lorsque vous partagez un fichier sur Google Drive publiquement, le lien de partage ressemble à ceci:
Ensuite, vous copiez l'identifiant du fichier et créez un lien googledrive.com qui ressemble à ceci:
la source
Basé sur la réponse de Roshan Sethia
Mai 2018
Utilisation de WGET :
Créez un script shell appelé wgetgdrive.sh comme ci-dessous:
Donnez les bonnes autorisations pour exécuter le script
Dans le terminal, exécutez:
par exemple:
la source
chmod 770 wgetgdrive.sh
Sept.2020
Tout d'abord, extrayez l'ID de votre fichier désir à partir de Google Drive:
Dans votre navigateur, accédez à drive.google.com.
Cliquez avec le bouton droit sur le fichier et cliquez sur "Obtenir un lien partageable"
Ensuite, extrayez l'ID du fichier de l'URL:
Ensuite, installez le
gdown
module PyPI en utilisantpip
:pip install gdown
Enfin, téléchargez le fichier en utilisant
gdown
et l'ID prévu:gdown --id <put-the-ID>
[ REMARQUE ]:
!
avantbash
.(ie
!gdown --id 1-1wAx7b-USG0eQwIBVwVDUl3K1_1ReCt
)la source
--MIS À JOUR--
Pour télécharger le fichier, récupérez d'abord
youtube-dl
pour python à partir d'ici:youtube-dl: https://rg3.github.io/youtube-dl/download.html
ou installez-le avec
pip
:MISE À JOUR:
Je viens de découvrir ceci:
Faites un clic droit sur le fichier que vous souhaitez télécharger à partir de drive.google.com
Cliquez sur
Get Sharable link
Activer
Link sharing on
Cliquer sur
Sharing settings
Cliquez sur le menu déroulant supérieur pour les options
Cliquez sur Plus
Sélectionner
[x] On - Anyone with a link
Copier le lien
Copiez l'identifiant après
https://drive.google.com/file/d/
:Collez ceci dans la ligne de commande:
Collez l'identifiant derrière
open?id=
J'espère que cela aide
la source
Les réponses ci-dessus sont obsolètes pour avril 2020, car Google Drive utilise désormais une redirection vers l'emplacement réel du fichier.
Fonctionnement à partir d'avril 2020 sur macOS 10.15.4 pour les documents publics:
la source
download-google-2
travaille pour moi. Mon fichier est de taille 3G. Merci @ danieltan95download-google-2
le dernier curl de cette dernièrecurl -L -b .tmp/$1cookies -C - "https://drive.google.com/uc?export=download&confirm=$code&id=$1" -o $2;
et il peut maintenant reprendre le téléchargement.Aucune réponse ne propose ce qui fonctionne pour moi à partir de décembre 2016 ( source ):
à condition que le fichier Google Drive ait été partagé avec les personnes disposant du lien et que
{FileID}
la chaîne se trouve derrière?id=
dans l'URL partagée.Bien que je n'ai pas vérifié avec des fichiers volumineux, je pense qu'il pourrait être utile de le savoir.
la source
curl -L -o {filename} https://drive.google.com/uc?id={FileID}
travaillé pour moi, merci!Le moyen le plus simple est:
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
la source
J'ai eu le même problème avec Google Drive.
Voici comment j'ai résolu le problème en utilisant Links 2 .
Ouvrez un navigateur sur votre PC, accédez à votre fichier dans Google Drive. Donnez à votre fichier un lien public.
Copiez le lien public dans votre presse-papiers (par exemple, clic droit, Copier l'adresse du lien)
Ouvrez un terminal. Si vous téléchargez sur un autre PC / serveur / machine, vous devez le SSH à ce stade
Installer Links 2 (méthode debian / ubuntu, utilisez votre distribution ou l'équivalent du système d'exploitation)
sudo apt-get install links2
Collez le lien dans votre terminal et ouvrez-le avec des liens comme ceci:
links2 "paste url here"
Accédez au lien de téléchargement dans les liens à l'aide de vos touches fléchées et appuyez sur Enter
Choisissez un nom de fichier et il téléchargera votre fichier
la source
Links
fait totalement l'affaire! Et c'est beaucoup mieux quew3m
Utilisez youtube-dl !
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890
Vous pouvez également passer
--get-url
pour obtenir une URL de téléchargement direct.la source
youtube-dl https://drive.google.com/open?id=ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa [GoogleDrive] ABCDEFG1234567890aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa: Downloading webpage
. peut-être avez-vous une version obsolète deyoutube-dl
ou le format du lien n'est pas reconnu par celui-ci pour une raison quelconque ... Essayez d'utiliser le format ci-dessus en remplaçant l'identifiant par l'identifiant de fichier de votre URL d'origineToutes les réponses ci-dessus semblent obscurcir la simplicité de la réponse ou comportent certaines nuances qui ne sont pas expliquées.
Si le fichier est partagé publiquement, vous pouvez générer un lien de téléchargement direct en connaissant simplement l'ID du fichier. L'URL doit être sous la forme " https://drive.google.com/uc?id=[FILEID Often-)&export=download" Cela fonctionne à partir du 22/11/2019. Cela ne nécessite pas que le récepteur se connecte à Google, mais nécessite que le fichier soit partagé publiquement.
Dans votre navigateur, accédez à drive.google.com.
Faites un clic droit sur le fichier et cliquez sur "Obtenir un lien partageable"
Modifiez l'URL afin qu'elle soit au format suivant, en remplaçant «[FILEID]» par l'ID de votre fichier partagé:
https://drive.google.com/uc?id=[ID_FICHIER ]&export=download
C'est votre lien de téléchargement direct. Si vous cliquez dessus dans votre navigateur, le fichier sera maintenant "poussé" vers votre navigateur, ouvrant la boîte de dialogue de téléchargement, vous permettant d'enregistrer ou d'ouvrir le fichier. Vous pouvez également utiliser ce lien dans vos scripts de téléchargement.
Donc, la commande curl équivalente serait:
la source
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?
J'utilise l'extrait curl de @ Amit Chahar qui a publié une bonne réponse dans ce fil. J'ai trouvé utile de le mettre dans une fonction bash plutôt que dans un
.sh
fichier séparéqui peut être inclus par exemple dans un
~/.bashrc
(après l'approvisionnement bien sûr s'il n'a pas été obtenu automatiquement) et utilisé de la manière suivantela source
-fr
est assez dangereuseIl existe un client multi-plateforme open source, écrit en Go: drive . C'est assez sympa et complet, et est également en développement actif.
la source
Je n'ai pas pu faire fonctionner le script perl de Nanoix, ou d'autres exemples de curl que j'avais vus, alors j'ai commencé à regarder dans l'API moi-même en python. Cela fonctionnait bien pour les petits fichiers, mais les gros fichiers étouffaient la RAM disponible, j'ai donc trouvé un autre code de segmentation agréable qui utilise la capacité de l'API à télécharger partiellement. Gist ici: https://gist.github.com/csik/c4c90987224150e4a0b2
Notez le bit sur le téléchargement du fichier json client_secret depuis l'interface API vers votre répertoire local.
La sourcela source
Voici un petit script bash que j'ai écrit qui fait le travail aujourd'hui. Il fonctionne sur des fichiers volumineux et peut également reprendre les fichiers partiellement récupérés. Il prend deux arguments, le premier est le file_id et le second est le nom du fichier de sortie. Les principales améliorations par rapport aux réponses précédentes ici sont qu'il fonctionne sur des fichiers volumineux et n'a besoin que des outils couramment disponibles: bash, curl, tr, grep, du, cut et mv.
la source
Cela fonctionne à partir de novembre 2017 https://gist.github.com/ppetraki/258ea8240041e19ab258a736781f06db
la source
Après avoir déconné avec ces ordures. J'ai trouvé un moyen de télécharger mon fichier doux en utilisant chrome - outils de développement.
Il vous montrera la demande dans la console "Réseau"
Clic droit -> Copier -> Copier comme Curl
-o
pour créer un fichier exporté.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
Résolu!
la source
Voici une solution de contournement selon laquelle je suis venu télécharger des fichiers de Google Drive vers mon shell Google Cloud Linux.
googledrive.com/host/[ID]
wget https://googledrive.com/host/[ID]
mv [ID] 1.zip
décompressez 1.zip
nous obtiendrons les fichiers.
la source
J'ai trouvé une solution de travail à cela ... Utilisez simplement ce qui suit
la source
Il existe un moyen plus simple.
Installez cliget / CURLWGET à partir de l'extension firefox / chrome.
Téléchargez le fichier à partir du navigateur. Cela crée un lien curl / wget qui se souvient des cookies et des en-têtes utilisés lors du téléchargement du fichier. Utilisez cette commande depuis n'importe quel shell pour télécharger
la source
le moyen facile de télécharger un fichier à partir de Google Drive, vous pouvez également télécharger un fichier sur colab
ensuite
ou
Document https://pypi.org/project/gdown/
la source
Méthode alternative, 2020
Fonctionne bien pour les serveurs sans tête. J'essayais de télécharger un fichier privé d'environ 200 Go, mais je n'ai pas réussi à faire fonctionner les autres méthodes mentionnées dans ce fil de discussion.
Solution
Installez et configurez Rclone , un outil de ligne de commande open source, pour synchroniser les fichiers entre votre stockage local et Google Drive. Voici un tutoriel rapide pour installer et configurer rclone pour Google Drive.
Copiez votre fichier de Google Drive sur votre machine à l'aide de Rclone
-P
L'argument permet de suivre la progression du téléchargement et vous permet de savoir quand il est terminé.la source
Mai 2018 TRAVAIL
Salut sur la base de ces commentaires ... je crée un bash pour exporter une liste d'URL du fichier URLS.txt vers un URLS_DECODED.txt et utilisé dans un accélérateur comme flashget (j'utilise cygwin pour combiner Windows et Linux)
L'araignée de commande a été introduite pour éviter le téléchargement et obtenir le lien final (directement)
Commandez GREP HEAD et CUT, traitez et obtenez le lien final, est basé en langue espagnole, peut-être pourriez-vous être porté en LANGUE ANGLAISE
echo -e "$URL_TO_DOWNLOAD\r"
probablement le \ r n'est que cywin et doit être remplacé par un \ n (ligne de rupture)**********user***********
est le dossier utilisateur*******Localización***********
est en langue espagnole, effacez les astérisques et laissez le mot en anglais Emplacement et adaptez LA TÊTE et les numéros CUT à l'approche appropriée.la source