変更履歴
- Rev. 0.7 : 2024年05月07日
- 新規作成
1 はじめに
本記事は、WindowsにおいてMicrosoft OneDrive(以降、単に“OneDrive”と記す)を、
コマンドベースを中心としてアクセスする方法を示すものです。
Windowsで、コマンドプロンプトやPowerShellからコマンドベースで
OneDriveにアクセスできる ようにするには“rclone”というツールを使います。
本記事では、この“rclone”というツールの使い方を説明します。
OneDriveのファイルやフォルダーを
コマンドプロンプトやPowerShellなどからコマンドベースでアクセスできるようになると、
バッチファイルに利用することができるようになります。
Webベースでは難しかった、ファイルのアップロードやダウンロード、また更新などの操作を
自動化することが可能になるということです。
バッチファイルをタスクスケジューラーに登録すれば、
OneDriveのファイル更新も定期的に行えるようになります。
ちなみに、rclone(rsync for cloud storage)は、
40以上のクラウドストレージで、
コマンドライン環境よりファイルの操作ができるようになるオープンソースソフトウェアです。
Microsoft OneDriveの他にも、
Google Driveや
Amazon S3、
Dropboxなどとも連携できます。
rcloneを使うことで、クラウドストレージに対して以下が可能になります。
・ ファイルのコピー
・ フォルダーの同期
・ ローカルからクラウドストレージへファイルの移動
・ クラウドストレージをネットワークドライブとしてローカルにマウント
2 rcloneのインストールとコンフィギュレーション(設定)
2.1 インストール
本記事で示す以外の他のインストール方法については、本家の下に示すページをご覧ください。
2.1.1 rcloneのインストール
rcloneは、Windowsでは「Windowsパッケージマネージャー」を使用したインストール方法が
用意されています。
PowerShellから、下に示すコマンドを実行してインストールします。
2.1.2 WinFsp(Windowsファイルシステムプロキシ)
WindowsでOneDriveを特定のフォルダーやネットワークドライブとして
“mount”することを予定している場合は、
関連ソフトウェアとして”WinFsp”も
合わせてインストールしておく必要があります。
WinFspは、下に示すURLからダウンロードできます。
2.2 OneDriveアクセストークン
rcloneがOneDriveにアクセスするためには、OneDriveのアクセストークンが必要です。
OneDriveのアクセストークンが未取得であれば、
コンフィグレーションの最後の方のステップでアクセストークンを取得するために、
WebブラウザでOneDriveサインインが求められます。
2.3 Configuration(コンフィギュレーション)
rcloneにおけるOneDriveのコンフィギュレーションについては、
下に示すページに詳細が記されています。
Microsoft OneDrive / Configuration | RCLONE
2.3.1 コンフィギュレーションの開始
- 【configの開始】
- コンフィギュレーションは、下に示すように“config”オプションを付けてrcloneを起動します。
- 【configファイルのパス】
- configファイルは、デフォルトでは次のパスに作成されます。
“$env:APPDATA”で表される上位パスは、
PowerShellにおいて“echo $env:APPDATA”コマンドで確認することができます。
2.3.2 リモートストレージの名前
初めてコンフィギュレーションを行なう場合は、
“No remotes found, make a new one?”と聞かれます。
以前コンフィユレーション立ち上げたけど何も設定しなかった場合は、
図2.3-1のように表示されるのかもしれません。
最初の問い合わせに、「New remote」の“n”を入力します。
“name>”の問い合わせに、リモートストレージの名前を入力します。
ここで入力した名前は、以降Windowsからアクセスする際の名前となります。
2.3.3 リモートストレージの種類
リモートストレージの名前を設定すると、
オンラインストレージのサービス名がずらっと表示されます。
“Storage>”では、「OneDrive」を示す番号である99を入力します
(何番になるかは、rcloneのバージョンによって異なるようです)。
2.3.4 クライアントID、クライアントシークレット
“client id>”、“client secret>”では、何も入力せずにENTERキーを押下します。
2.3.5 リージョン
“region>”では、「[Microsoft Cloud Global」の“1”を選択します。
2.3.6 advanced config
こちらは、デフォルトとして推奨されている「No」を選択します。
2.3.7 OneDriveの認証とアクセストークンの取得
Webブラウザを通じて、連携先サービスの認証をします。
“y”を入力すると認証用のブラウザが起動して、
認証完了後OneDriveのアクセストークンが取得されます。
OneDriveアクセストークンの取得が完了すると、 図2.3-7のような表示が出ます。
Webブラウザが起動しない時は、手動でWebブラウザを立ち上げ、
rcloneコンフィギュレーション・ログ中に表示されている“http://127.0.0.1:53682~”のURLを
開きます。
コンフィギュレーション中に、OneDrive認証を行なわずアクセストークンを取得しなかった場合、
後に“rclone authorize“リモートストレージ名””とアクセストークンを取得して、
configファイルに追加編集する方法もあります
(“リモートストレージ名”は、 コンフィギュレーション中で決めた任意のデバイス名です)。
この時、configファイルのフォーマットの知識が必要ですが、
見ていただければすすぐにお分かりになると思いますので、
configファイルのフォーマットの説明は本記事では割愛します。
2.3.8 接続タイプ
「OneDrive Personal or Business」を示す“1”を入力して次へ。
2.3.9 使用するドライブの選択
使用するドライブを選択します。
複数の契約をされている方はIDが複数表示されているかもしれませんが、
1つしか表示されていなければ空欄のままENTERキーを押下すればOKです。
2.3.10 コンフィグレーション・データの保存
コンフィギュレーションが完了すると、図2.3-10に示すように
configファイルに保存する内容が表示され、保存することの確認が求められます。
“y/e/d>”で“y”を入力して設定を保存します。
最後に「Quit config」の“q”を入力して、コンフィギュレーションを終了します。
3 rcloneの使い方
本章では、rcloneの使い方を簡単に紹介します。
詳しくは、次のページをご覧いただければと思います。
3.1 rcloneの基本的な使い方
rcloneの基本的な使い方は、下に示すようになります。
Windowsでのrcloneのコマンドは、コマンドが完了するまで次のコマンドを受け付けられません。
Windowsでは“--daemon”オプションは無効となっており、
WindowsのサービスやLinuxデーモンのようにバッググラウンドで動作することはできません。
下に、いくつかのコマンド使用例を示します。
クラウドストレージのpathフォルダーに同期する。
3.2 rcloneの主なコマンド
rcloneのコマンドは、Linuxのbashにほぼ同じです。
表3.2-1によく使われるだろうと思われるコマンドを示します。
すべてのコマンドについては、下に示すページでご確認ください。
4 OneDriveのマウント
WindowsでOneDriveを特定のフォルダーやネットワークドライブとして“mount”するには、
”WinFsp”がインストールされていることが必要です。
WindowsでのOneDriveマウント詳細については、次のURLをご覧ください。
rclone mount / Installing on Windows | RCLONE
マウントしたフォルダーやネットワークドライブは、デフォルトでは“--read-only”です。
フォルダーやネットワークドライブへ書き込みを行う場合、またファイルを変更する場合は、
rcloneに次のオプションを付けて実行します。
or
--vfs-cache-mode full
4.1 特定のフォルダーへのマウント
書き込み可能なOneDriveフォルダーのWindowsフォルダーへのマウントは、 下に示すように“rclone mount”を起動します。
Windowsフォルダーは、未使用のフォルダーパスでなければなりません。
4.2 OneDriveのネットワークドライブへのマウント
OneDriveフォルダーのWindowsネットワークドライブへのマウントは、
たとえば<target_drive>ドライブにマウントする場合、
下に示すよう“--network-mode”オプションを付けて“rclone mount”を起動します。
--vfs-cache-mode writes
例として、図4.2.1に示すようなフォルダー構成のOneDriveを
マウントした時のWindowsの様子を、
図4.2-2にマウントの開始、
図4.2-3にWindowsでのOneDriveフォルダーの一覧表示を示します。
4.3 OneDriveのアンマウント
OneDriveのアンマウントは、マウントを行ったシェルにおいて“CTRL-C”を打鍵して、
“rclone”を強制終了することで行います(なんかスマートじゃない。 正式な方法があるのかも?)。
以上
本記事の元となっているWordで作成したPDFを
ページ最後に貼り付けました。
少しでも役に立てていただければ、うれしく思います。
このPDFファイルは、自由に配布されてもかまいません。
ただし、再配布の際には、
入手元と著者名は明らかにしてください。
なお、上のPDFファイルの内容、また本文中の記述に、
誤字や脱字、誤った内容の記述など見つかりましたら、
下に示すフォームでご連絡いただければ幸いです。