LoginSignup
2

posted at

updated at

RcloneでmacOSとGoogle Driveのファイルを同期してみた

Rcloneとは

Rclone とは40を超えるクラウドストレージをコマンドラインから操作出来るツールです。
Go製のOSSでソースコードも公開されています。

rclone/rclone: "rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Yandex Files

サポートしているクラウドストレージ

サポートしているクラウドストレージの一例です。
メジャーどころは概ね抑えていそうです。

  • Amazon S3
  • Google Drive
  • Google Cloud Storage
  • Microsoft OneDrive

Supported providers

ローカルの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を有効化する

image.png

2 OAuth同意画面の設定

  • アプリ名をrcloneにする
  • ユーザーサポートメールとデベロッパーの連絡先情報に任意のメールアドレスを記入する

3 OAuth2.0クライアントIDの作成

  • サイドバーの「認証情報」をクリックする
  • 「+認証情報を作成」→「OAuthクライアントID」をクリックする
  • client_idとclient_secretを控えておく

Rcloneの初期設定

rcloneの初期設定を行うにはrclone configコマンドを利用する。
対話型で設定をしていく中でclient_idclient_secretは上記で控えたものを利用する。

詳細はドキュメントを参考にしてください。

コマンド

Google Driveのファイル一覧を表示する

$ rclone ls remote:path

# 例
$ rclone ls google_drive:rclone_test
-1 テストドキュメント.docx

rclone ls

ローカルのファイルを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

バージョン管理も行われていた。

image.png

rclone copy

Google Driveのファイルをローカルに同期する

$ rclone sync source:path dest:path

# 例
$ ls
test.txt   test2.txt  test3.txt
$ rclone sync ./ google_drive:rclone_test

source(ローカル)の状態に合わせてリモート(Google Drive)のファイルが同期される。

実行前

image.png

実行後

image.png

rclone sync

最後に

今回はGoogle Driveのマイドライブを対象に同期を行いましたが、共有ドライブに対しても実行可能です。

検証が出来たらまた記事をまとめてみようと思います。

以上です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
2