プロの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を呼び出すとき、私がこれを持っているので、それがサーバーに到達できないようです。
私たちは私たちも総重量を持っていない見ることができるようにダウンロードする。比較の要素として、これはフランスのマシンでの結果である:
私が知っている、置換コマンドに関する警告がありますが、それはその仕事をするので、私はまだそれを修正しようとしていません。
注 - > downloadUrlは、この形式になっています。
https://lpl-my.sharepoint.com/personal/{user}_{company infra domain}_com/_layouts/15/download.aspx?
私は問題が何であるかを把握することはできません。私はブラウザを通してhttps://lpl-my.sharepoint.comにアクセスすることができるので、私はサーバIPが禁止されているとは思わない。
私はまだ説明が見つかりませんでした。しかし、私はそれがプロキシの問題だと思います。セキュリティ上の理由から、コマンドラインから一部のWebサイトにアクセスできない可能性があります。だから、私は端末でプロキシを定義しようとしましたが、どちらもうまくいきませんでした。 –