web-dev-qa-db-fra.com

Comment télécharger des fichiers et des dossiers depuis OneDrive à l'aide de wget?

Comment utiliser wget pour télécharger des fichiers depuis Onedrive? (et fichiers batch et dossiers entiers, si possible)

18
charles

Il y a une façon qui fonctionne pour moi (basée sur Comment créer un lien direct de fichiers OneDrive )

  1. Cliquez avec le bouton droit sur le fichier que vous souhaitez télécharger (à partir de l'interface Web) et choisissez Intégrer.

  2. Appuyez sur "Générer du code HTML pour incorporer ce fichier" .

  3. Copiez la pièce contenue dans le "" de src est votre lien. Cela ressemblera.

  4. Remplacez embed par download. Cela ressemblera à https://OneDrive.live.com/download?cid=6EBB03E38A53ED3E&resid=6EBB03E38A53ED3E%21116&authkey=AC4lDqtLG8LqfiA .

  5. Alimentez-le dans wget en utilisant la syntaxe suivante (les guillemets sont obligatoires):

    wget --no-check-certificate "https://OneDrive.live.com/download?cid=6EBB03E38A53ED3E&resid=6EBB03E38A53ED3E%21116&authkey=AC4lDqtLG8LqfiA"
    
  6. Prendre plaisir.

13
Fedorov7890

Utiliser Chrome (mais Firefox fonctionnera probablement aussi)).

  1. Ouvrez DevTools
  2. Cliquez sur le bouton Télécharger.
  3. Télécharger mais annuler immédiatement
  4. Ouvrez l'onglet "Réseau" dans DevTools. Recherchez "Zip? AuthKey =" dans DevTools et ouvrez-le (cliquez). Il s'agit d'une demande POST.
  5. Cliquez sur "Afficher la source" à droite de "Données du formulaire" en bas.
  6. Construisez la commande comme suit:

wget --post-data='<raw form data>' '<Download URL>'

Ou:

wget --post-data='resIds=xxx&canary=yyy&authkey=zzz' 'https://cid--foobar.users.storage.live.com/downloadfiles/V1/Zip?authKey=zzz'

Cela fonctionne même sur un hôte différent (avec une adresse IP différente).

5
ayke

générez un lien de partage et ajoutez "& download = 1" à la fin de celui-ci.

par exemple. si le lien est " https://some.Host/:z:/x/personal/some_user/123456asdf?e=12345 "

puis

wget "https://some.Host/:z:/x/personal/some_user/123456asdf?e=12345&download=1"
3
amozejko

Ce python SDK (avec exemple) pour les projets OneDrive fonctionne (pour les comptes personnels, professionnels et d'entreprise):

https://github.com/OneDrive/onedrive-sdk-python

2
firebitsbr

En outre, nous pouvons utiliser CurlWget J'ai déjà essayé sur OneDrive et Google Drive

Si vous cherchez à télécharger un dossier partagé public : OneDeath script

Il utilise wget pour effectuer certains appels API et télécharge ensuite récursivement les fichiers. Bonus: sha256 vérifie les fichiers finis.

Sharepoint est un peu plus délicat, mais désormais également pris en charge (sauf qu'il récupère actuellement plus de fichiers à partir d'un lecteur que ce qui est indiqué par le lien). Un problème majeur était une structure API légèrement différente et le fait que le jeton de session semblait expirer, mais il est également résolu. Ils semblent également avoir une certaine limitation de débit en place, alors ne commencez pas trop de téléchargements parallèles.

PS: Si vous êtes intéressé à extraire les liens nécessaires pour le téléchargement manuel de wget, je vais vous donner un aperçu du processus.

0
BotOfWar