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:
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:
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.
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 ... –