4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-09-16

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のマイドライブを対象に同期を行いましたが、共有ドライブに対しても実行可能です。

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

以上です。

4
4
0

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
  3. You can use dark theme
What you can do with signing up
4
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?