🐷
rcloneでGCSをwindowsにmountする
はじめに
rcloneというクラウドストレージ関連の操作(copy, sync, mount, ...)ができるCLIツールがある。対象となるストレージはGoogle Driveやs3など多岐にわたるが、この中にGoogle Cloud Storage (GCS)も含まれる。
rcloneを使ってwindowsにGCSをマウントしてみる。
インストール
公式のドキュメントはここにある。
ダウンロードは
- 公式サイト: https://rclone.org/
- GitHub: https://github.com/rclone/rclone/releases
- winget
- chocolately
の4種。個人的にシングルバイナリの方が好きなのでGitHubからダウンロードした。(相性問題かもしれないが公式サイトは信じられないくらい遅かった。)
rclone mountのためにはWinFsp(LinuxでいうFUSEを実現するような仕組み?)が必要とのことで、winfspもインストール。
認証
まずはremoteの設定をrclone configで行う必要がある。
ここで実施したコンフィグはデフォルトでは%APPDATA%\rclone\rclone.confに作成される模様。
変更したい場合はオプション経由で--config=HOGEHOGE/rclone.confのように指定するか、環境変数RCLONE_CONFIG_DIRで指定する必要がある。
ざっと読む限りでは以下の認証が利用可能っぽい。
- oauth
- service accountのjson
- 環境変数経由での指定
コンフィグファイル自体をパスワードで保護することも可能。
いったんは以下で設定。remoteの名前はgcs_testとした。
Options:
- type: google cloud storage
- object_acl: private
- bucket_acl: private
- bucket_policy_only: true
- location: asia-northeast1
- env_auth: true
疎通確認
Application Default Credentialsを利用して、疎通を確認する。
検証では環境変数GOOGLE_APPLICATION_CREDENTIALSを利用した。
rclone ls gcs_test:bucket_hogehoge
mountする
疎通の確認が取れたので、mountする。
注意点は以下。
- writeにはVFS File Cachingの設定が必要となる場合がある。
- Windowsでは追加で権限設定のオプションが必要な場合がある。
- 管理者権限つきでmountすると他のアカウントから見えないことがあるので、通常の権限(権限未昇格)のcmdからマウントしたほうが良い。
結果的に以下のコマンドを利用してRドライブへとマウントした。
rclone mount gcs_test:bucket_hogehoge r:\ -o FileSecurity="D:P(A;;FA;;;WD)" --vfs-cache-mode full
Discussion