2017-05-12 18 views
0

プロのOneDriveにある複数のファイルをダウンロードするスクリプトを作成しました。このスクリプトは、フランスのコンピュータ、米国のコンピュータから完全に動作しますが、日本のコンピュータからは動作しません。 OneDriveでファイルを日本からプログラムでダウンロードすることはできませんか?

は、あなたが問題を理解できるようにするために、私を詳述プログラム:

1 - 私は(私はJay Lee detailed answerに触発されてしまった)トークンシステムを確立し、access_token変数でトークンを取得します。

2 - ファイルをダウンロードするには、私の場合、私はこのように

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

を使用することはできません、これは私が進める方法:

#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") 

私が言ったように、フランスと米国のコンピュータ用に、始まりますそれは動作しますが、日本のマシンでは動作しません。私はitemPropertiesとdownloadUrlを得るのですが、私はCURLでdownloadUrlを呼び出すとき、私がこれを持っているので、それがサーバーに到達できないようです。

enter image description here

私たちは私たちも総重量を持っていない見ることができるようにダウンロードする。比較の要素として、これはフランスのマシンでの結果である:

enter image description here

私が知っている、置換コマンドに関する警告がありますが、それはその仕事をするので、私はまだそれを修正しようとしていません。

注 - > downloadUrlは、この形式になっています。

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

私は問題が何であるかを把握することはできません。私はブラウザを通してhttps://lpl-my.sharepoint.comにアクセスすることができるので、私はサーバIPが禁止されているとは思わない。

+0

私はまだ説明が見つかりませんでした。しかし、私はそれがプロキシの問題だと思います。セキュリティ上の理由から、コマンドラインから一部のWebサイトにアクセスできない可能性があります。だから、私は端末でプロキシを定義しようとしましたが、どちらもうまくいきませんでした。 –

答えて

0

lpl-my.sharepoint.comが同じネットワーク上の場所に解決されているかどうかをping/tracerouteで確認してください。

また、curlを-vで実行すると、冗長なトレースが表示され、その違いを確認できます。

+0

私は既にlpl-my.sharepoint.comにpingを実行していましたが、これは「x.x.10.31からの返信:宛先ホストに到達できません。 2つの 'x'は私のマシンIPアドレスの同じ数字です(私のmachinneはx.x.22.10を持っています)。同じネットワークのサーバーだと思います。しかし、その機能は何ですか? DNS? –

関連する問題