2017-05-12 3 views
0

J'ai fait un script qui télécharge plusieurs fichiers situés dans mon OneDrive professionnel. Ce script fonctionne parfaitement à partir d'un ordinateur français, un ordinateur américain mais il ne peut pas fonctionner à partir d'un ordinateur japonais.Vous ne pouvez pas télécharger un fichier sur OneDrive par programmation depuis le Japon?

Pour vous permettre de comprendre le problème, je vais détailler le programme:

1- Je place le système symbolique (je me suis inspiré par Jay Lee detailed answer) et récupérer le jeton dans la variable access_token.

2- Pour télécharger le fichier, dans mon cas, je ne peux pas utiliser

curl -w %{time_total} https://graph.microsoft.com/v1.0/me/drive/items/01M...WU/content -H "Authorization: Bearer $access_token" 

Ainsi, cette façon dont je procède:

#I get the item properties 
itemProperties=$(curl ${ODf1Mb} -H "Authorization: Bearer $access_token") 

#In these properties I select the downloadUrl that will permit me to download the file 
downloadUrl=$(echo -e "$itemProperties" | grep "@microsoft.graph.downloadUrl" | awk -F'[",]' '{ print $9 }')  

#Finally I execute this URL storing the download time in a variable (I do all this stuff for this) 
dload=$(curl -w %{time_total} ${downloadUrl} -H "Authorization: Bearer $access_token") 

Comme je l'ai dit au début, pour les ordinateurs français et américains ça marchera mais sur la machine japonaise ça ne marche pas. Je reçois les itemProperties et la downloadURL mais quand je l'appelle la downloadURL avec CURL il semble qu'il ne peut pas atteindre le serveur parce que j'ai ceci:

enter image description here

Comme nous pouvons le voir, nous n'avons même pas le poids total à télécharger. À titre d'élément de comparaison, cela est le résultat d'une machine française:

enter image description here

Je sais, il y a un avertissement relatif à la substitution commande mais je n'ai pas essayé de corriger encore parce qu'il fait son travail .

Remarque -> le downloadURL a ce format:

https://lpl-my.sharepoint.com/personal/{user}_{company infra domain}_com/_layouts/15/download.aspx? 

Je ne peux pas comprendre ce qui est le problème. Je peux accéder au https://lpl-my.sharepoint.com via le navigateur, donc je ne pense pas que l'adresse IP du serveur est interdite.

+0

Je n'ai toujours pas trouvé d'explication. Mais je suppose que c'est une question de proxy. Peut-être qu'il n'est pas possible d'accéder à certains sites Web à partir de la ligne de commande pour des raisons de sécurité. J'ai donc essayé de définir le proxy dans le terminal mais cela n'a pas fonctionné non plus ... –

Répondre

0

Vérifiez votre ping/traceroute pour voir si lpl-my.sharepoint.com résout au même emplacement réseau.

En outre, j'ai vu d'autres personnes exécuter curl avec -v pour voir les traces verbeuses et voir si la différence est.

+0

J'avais déjà testé pour ping lpl-my.sharepoint.com et j'ai obtenu ceci: 'Réponse de x.x.10.31: Destination host unreachable'. Comme les deux 'x' sont les mêmes chiffres de l'adresse IP de ma machine (ma machinne a x.x.22.10) je suppose que c'est un serveur du même réseau. Mais quelle est sa fonction? DNS? –