GCS のバケットを windows のファイルシステムとしてマウント
Google Cloud Storage のバケットをローカルファイルシステムとして使いたい
https://stackoverflow.com/questions/67332957/how-to-use-gcp-bucket-data-on-windows-file-system
rclone が一番使われてそう
scoop にあるので入れる
scoop install rclone
https://rclone.org/googlecloudstorage/
の通りセットアップ。remote という名前は紛らわしいので gcs に。
セットアップ最後でOAuth認証でtoken取得が発生する。
設定ファイルに書き込まれた
rclone config file でファイルの実態が解る
こんなファイル
code:txt
gcs
type = google cloud storage
project_number = xxx
location = asia-northeast1
token = {"access_token": ...}
rclone ls gcs:bucket_name/path/ で確認、取得できてるぞ
マウントするぞ!
https://rclone.org/commands/rclone_mount/
windows 固有の話ものってる
rclone mount gcs:bucket Y:
winfsp が無くてエラー。入れる。
scoop install winfsp-np
マウントできたが書き込みでエラー
bucket_policy_only を true にする必要がある、ので追加する
code:txt
gcs
type = google cloud storage
project_number = xxx
location = asia-northeast1
bucket_policy_only = true
token = {"access_token": ...}
rclone authorize gcs で再認証して、出力された token で上書き
マウントして書き込めることを確認する。便利じゃん!
ファイルシステムのキャッシュ時間
リモートで反映した変更が手元の変更に反映されるまで少々タイムラグが有る
キャッシュしてるため
デフォルトだと5分/1分
rclone mount gcs:bucket/path/ Y: --dir-cache-time 5m --poll-interval 1m
試しに 30s/10s にしてもうまく動く
再同期タイミングが5分で問題なければ変える必要なし
Windows 起動時のタイミングで mount してほしい
NSSM を使ってサービス化する
https://forum.rclone.org/t/installing-rclone-mount-on-windows-as-service/4649/10
rclone の起動オプション
mount gcs:bucket X: --config "C:\Users\hotch\scoop\apps\rclone\current\rclone.conf" --vfs-cache-mode writes 
rclone.conf は private gist を見ると良い
--config で rclone の設定の位置を適宜セットしてやる。
--vfs-cache-mode writes は windows 11 2022H2 からつけないとうまく書き込めなくなったっぽい?
うまく行かなかったら、windowsのイベントビュワーのApplicationsを見る