Rcloneとは
Rclone とは40を超えるクラウドストレージをコマンドラインから操作出来るツールです。
Go製のOSSでソースコードも公開されています。
サポートしているクラウドストレージ
サポートしているクラウドストレージの一例です。
メジャーどころは概ね抑えていそうです。
- Amazon S3
- Google Drive
- Google Cloud Storage
- Microsoft OneDrive
- …
ローカルのmacOSとGoogle Driveを連携してみる
環境
macOS 11.6.2
今回はmacOSですが、rcloneさえ導入できればLinux等の別のOSでも利用出来ます。
Rcloneのインストール
$ curl https://rclone.org/install.sh | sudo bash
$ rclone version
rclone v1.59.1
...
https://rclone.org/downloads/#script-download-and-install
クライアントIDの取得
1 Google Drive APIの有効化
- Google Cloud Platformの管理画面にアクセスする
- サイドバーの「APIとサービス」→「有効なAPIとサービス」→「ライブラリ」と遷移する
- APIの検索ボックスに
Google Drive API
と入力する - Google Drive APIを有効化する
2 OAuth同意画面の設定
- アプリ名を
rclone
にする - ユーザーサポートメールとデベロッパーの連絡先情報に任意のメールアドレスを記入する
3 OAuth2.0クライアントIDの作成
- サイドバーの「認証情報」をクリックする
- 「+認証情報を作成」→「OAuthクライアントID」をクリックする
- client_idとclient_secretを控えておく
Rcloneの初期設定
rcloneの初期設定を行うにはrclone config
コマンドを利用する。
対話型で設定をしていく中でclient_id
とclient_secret
は上記で控えたものを利用する。
詳細はドキュメントを参考にしてください。
コマンド
Google Driveのファイル一覧を表示する
$ rclone ls remote:path
# 例
$ rclone ls google_drive:rclone_test
-1 テストドキュメント.docx
ローカルのファイルをGoogle Driveにコピーする
$ rclone copy source:path dest:path
# 例
$ rclone copy test.txt google_drive:rclone_test
ディレクトリ指定で複数ファイルのコピーも可能。
$ ls
test.txt test2.txt test3.txt
# test.txt, test2.txt, test3.txtがGoogle Driveにコピーされる
$ rclone copy ./ google_drive:rclone_test
同じファイルは重複してコピーしないようになっている。(サイズと変更時間またはMD5SUMで検証している。)
ローカルのファイルに適当な修正を加えたあとに再コピーを行うとGoogle Drive側のファイルも更新される。
$ vim test.txt
$ rclone copy test.txt google_drive:rclone_test
バージョン管理も行われていた。
Google Driveのファイルをローカルに同期する
$ rclone sync source:path dest:path
# 例
$ ls
test.txt test2.txt test3.txt
$ rclone sync ./ google_drive:rclone_test
source(ローカル)の状態に合わせてリモート(Google Drive)のファイルが同期される。
実行前
実行後
最後に
今回はGoogle Driveのマイドライブを対象に同期を行いましたが、共有ドライブに対しても実行可能です。
検証が出来たらまた記事をまとめてみようと思います。
以上です。