Comment télécharger un dossier de google drive à l'aide d'un terminal?

60

Je veux télécharger un dossier de mon lecteur Google à l'aide d'un terminal? Y'a-t'il un quelconque moyen d'y arriver? J'ai essayé ceci:

$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"

Mais il télécharge ce fichier texte: folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing. Est-il possible de télécharger le dossier Google Drive à partir du terminal?

utilisateur22180
la source
1
Vérifier le montage de Google Drive dans Linux? .
henrique
Je les ai vérifiées mais ils ne peuvent pas gérer les feuilles de calcul Google. Comme j’ai besoin d’accéder à un tableur et que je ocamlfusepeux le gérer, j’ai pensé à le télécharger à chaque fois que j’en ai besoin, même si le temps presse. Mais je n'ai pas d'autres options.
user22180
Définissez le paramètre de dossier sur "quiconque sur Internet peut trouver et afficher", vous pourrez alors télécharger le fichier avec wget https://googledrive.com/host/file_idvous wget https://googledrive.com/host/0B-Zc9K0k9q-WdEY5a1BCUDBaejQ. Solution expliquée ici plus en détail .
Paul Rougieux
De nouvelles réponses à cela pendant le temps écoulé? nous avons une option ci-dessous.
Matan

Réponses:

48

J'ai pu télécharger un fichier partagé public en utilisant cette commande:

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

FILEIDdoit être remplacé par l'ID de fichier réel. FILENAMEest le chemin / nom du fichier où le téléchargement sera stocké.

Notez que vous ne pouvez pas utiliser un folderid au lieu de fileid. J'ai utilisé view source dans une vue de dossier où je pouvais trouver le code HTML suivant <div id="entry-0B0jxxycBojSwVW.... La chaîne commençant par 0Bétait l'ID de fichier.

wimh
la source
4
Cela a très bien fonctionné pour moi! je viens juste d'utiliser drive.google.com à la place
thouliha le
Comme j'avais un fichier volumineux, l'avertissement de Google antivirus (qu'il ne pouvait pas numériser) n'arrivait pas à rester. Je n'ai pas trouvé de solution à ce problème. Cependant, j'ai réalisé que je pouvais simplement utiliser scppour transférer le fichier sur mon serveur (qui nécessitait un tel téléchargement)
Matthias
2
cela ne fonctionne plus avec google drive ...
loretoparisi
2
Cela ne fonctionnera pas pour les gros fichiers. Cette réponse en débordement de pile fonctionne à merveille: stackoverflow.com/a/32742700/4773609
HG Sur
1
@HGSur Ma réponse ci-dessous fonctionne également pour les gros fichiers.
FrankerZ
22

Pour les fichiers de disque Google trop volumineux et le message d'erreur "Google ne peut pas fournir d'analyse de virus", voici la solution que j'ai utilisée:

Commencez par télécharger le fichier ici (suivez les étapes ci-dessus):

$ wget --save-cookies 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_]+).*/Code: \1\n/p'

Ensuite, après avoir obtenu le code (il sera affiché sur la page Web et à l'aide de sed ci-dessus), utilisez l'URL suivante:

$ wget --load-cookies cookies.txt 'https://docs.google.com/uc?export=download&confirm=CODE_FROM_ABOVE&id=FILEID'

Ajoutez-le -O FILENAMEà l'instruction wget précédente pour spécifier un nom de fichier, si vous souhaitez l'écrire dans un fichier.

FrankerZ
la source
Ça fonctionne super bien! Si vous ajoutez --content-disposition wget donnera automatiquement le nom correct au fichier
Waleed Hamra
8

Un nouveau client multi-plateforme, à code source ouvert, écrit en Go, appelé drive, est plutôt agréable et complet, et est également en développement actif.

Exemples

La commande pull télécharge des données de Google Drive qui n'existent pas localement et supprime les données locales qui ne sont pas présentes sur Google Drive. Exécutez-le sans aucun argument pour extraire tous les fichiers du chemin actuel:

$ drive pull

Tirer par des allumettes est également supporté

$ cd ~/myDrive/content/2015
$ drive pull --matches vines docx

Voir le lien ci-dessus pour d'autres exemples, ce ne sont que la pointe de l'iceberg.

Utgarda
la source
1
Cet outil n'est plus mis à jour depuis septembre 2017
Mateusz Konieczny
Oui mais il fonctionne toujours et pour télécharger un répertoire entier , il est la meilleure solution: drive pull 'Colab Notebooks/sorted/models/resnet-101-90.9-max-acc'. Les autres méthodes sont pénibles.
Avio
7

wgetne peut gérer que des liens directs, mais ce n’est pas le principal problème ici. Google Drive s'attend à ce que vous vous authentifiiez avant de télécharger votre fichier. Cela signifie que vous devrez utiliser un navigateur Web pour télécharger le fichier. Il existe quelques navigateurs Web pour le terminal, par exemple , Lynx .

Si vous choisissez de partager publiquement votre fichier (afin que tout le monde puisse le télécharger), vous pouvez utiliser l'un des nombreux services de permalien Google Drive. Je crois que ceux-ci devraient produire des liens qui fonctionneront avec wget. Voici une liste de deux que j'ai trouvé lors de la recherche d'informations: http://gdriveurl.com/ http://gdurl.com/

En supposant que vous utilisez Linux, il est intéressant de se pencher sur un client open source pour Google Drive.

arnefm
la source
Lynx montre "rediriger" pendant plus de 5 minutes en essayant d'accéder au lecteur. "Google Drive permalink", ça va, mais je ne veux pas le partager avec tout le monde. J'ai utilisé Griveet Ocamlfuseils ne peuvent pas accéder aux feuilles de calcul
user22180
Confirmation du lien de "téléchargement" de gdriveurl en collaboration avec wget
Randall
en ce qui concerne la suggestion du client open source: de par mon expérience d’utilisation de ce client gdrive et d’un utilitaire similaire appelé rclone, j’ai eu de meilleures expériences avec rclone.
7yl4r
7

Il existe un programme géant dans le répertoire ubuntu 17.04 appelé: rclone

$ sudo apt update && sudo apt install rclone

$ rclone config --> than follow the steps to setup your gdrive

Maintenant, vous pouvez copier et synchroniser tout ce que vous voulez. Le projet prend en charge tous les types de nuages.

$ rclone sync /home/<usrname>/Desktop/yourfolder gdrivename:yourfolder

[1]: https://rclone.org

(Au fait, j'ai transféré environ 600 Go et transféré 1 To avec rclone de gdrive à gdrive en quelques heures, de gdrive à ubuntu et d'ubuntu à gdrive .. et cela fonctionne à merveille plusieurs semaines de suite!

https://forum.rclone.org/t/can-copy-between-google-drive-accounts-without-download-and-upload-files/969/8

)

III
la source
5

vous pouvez essayer, si vous êtes sur Firefox, d'installer l'addon Cliget. Pour chaque fichier que vous souhaitez télécharger, programmez un lien direct Curl, wget ou aria2 permettant de télécharger ce fichier. J'utilise cela pour télécharger des fichiers sur d'autres machines via ssh car c'est beaucoup plus rapide pour moi de télécharger directement sur un ordinateur distant que de télécharger ce fichier à partir de mon ordinateur. Cela fonctionne aussi avec dropbox, gdrive etc.

Lazar
la source
5

Vous pouvez utiliser l'outil de ligne de commande open source Linux / Unix gdrive.

Pour l'installer:

  1. Téléchargez le binaire. Choisissez celui qui correspond à votre architecture, par exemplegdrive-linux-x64.

  2. Copiez-le sur votre chemin.

    sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
    sudo chmod a+x /usr/local/bin/gdrive;
    

Pour l'utiliser:

  1. Déterminez l'ID du dossier Google Drive. Pour cela, accédez au dossier à télécharger à l'aide du client Web drive.google.com. Maintenant, regardez l'URL dans la barre d'adresse du navigateur, il affichera quelque chose comme https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H. Récupérez la chaîne derrière la dernière /et copiez-la dans votre presse-papiers. C'est l'identifiant du dossier.

  2. Téléchargez le dossier. Bien sûr, utilisez l'ID de votre dossier à la place dans la commande suivante.

    gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

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-coller dans l'outil. Le téléchargement commence 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 dans une question sur stackoverflow.com. Réponse adaptée de ma réponse similaire là-bas .

Tanius
la source
4

Téléchargez le binaire à partir du lien ci-dessous

chmod +x <binary>
./drive download id

Il va générer un lien pour le code de vérification. Cliquez sur le lien et autorisez l'accès à gdrive et copiez le code de vérification à partir du navigateur. Collez-le.

Ça marche pour moi

Aspirer
la source