LoginSignup
2
1

More than 3 years have passed since last update.

GCS FUSEを使いローカルディレクトリとGCSを同期させる ~Mac~

Last updated at Posted at 2020-08-18

GCS FUSE を使い GCE 内のディレクトリと GCS を同期させる ~Mac~

環境

MacOS X 10.15.5 (Catalina)
Homebrew 2.4.9
Google Cloud SDK 304.0.0
osxfuse 3.11.0
gcsfuse 0.30.0

GCP アカウント登録

【画像で説明】Google Cloud Platform (GCP)の無料トライアルでアカウント登録

Google Cloud SDK のインストール

Google Cloud SDK のインストール ~ 初期化

プロジェクト作成

Google Cloud SDK でプロジェクトを作成する

FUSE の設定

osxfuse のインストール

$ brew cask install osxfuse

gcsfuse のインストール

$ brew install gcsfuse

パスが通らない場合はシンボリックリンクを作成
※ 冒頭に記載の環境ではインストール後自動でリンクがはられていたため下記操作は不要でした。

ln -s /usr/local/Cellar/gcsfuse/${インストールしたgcsfuseのバージョン}/bin/gcsfuse /usr/local/bin/
ln -s /usr/local/Cellar/gcsfuse/${インストールしたgcsfuseのバージョン}/sbin/mount_gcsfuse /sbin/

PC 側のセキュリティ設定

osxfuse の許可

システム環境設定 > セキュリティとプライバシー > プライバシー > フルディスクアクセス

スクリーンショット 2020-08-14 16 26 54

アプリケーションにフルディスクアクセス権限を付与

システム環境設定 > セキュリティとプライバシー > プライバシー > フルディスクアクセス
から、利用するアプリケーションにチェック
下記はiTermVSCodeにアクセス権限を与えている例です。

※ フルディスクアクセス権限は macOS Mojave から導入されたセキュリティ機能。
許可したアプリケーションのみ重要データにアクセスすることができるように管理。

アプリケーションの認証

アプリケーションが API にアクセスするための認証。

gcloud auth application-default login

確認

gcloud auth application-default print-access-token

Token が出力されれば OK です。

マウントするディレクトリを作成

$ mkdir ./test

GSC バケットを作成

$ BUCKETNAME='your-bucket-name'
$ gsutil mb gs://$BUCKETNAME

対象ディレクトリを GSC バケットにマウント

バケットの指定にgs://は不要なので注意。

$ gcsfuse $BUCKETNAME ./test

確認

ファイルを作成

$ touch ./test/test.py

バケットの中身を確認

$ gsutil ls gs://$BUCKETNAME

gs://your-bucket-name/test.py

同じファイルが入っていれば OK です。

中身がある場合はどうなる?

ローカルディレクトリの中身がGCSバケットと同じ状態になります。
ローカルディレクトリにファイルなどが入っていた場合、削除されてしまったように見えますが隠れているだけです。
下記手順でマウントを解除することで元の状態にもどります。

マウントを解除

アンマウントする場合もgs://は不要。

$ umount $BUCKETNAME

マウントしたディレクトリを削除

マウントした状態のディレクトリは削除できないので、アンマウントしてから削除するようにします。
マウント中に削除しようとすると、このようなエラーが出ます。

rm -rfi ./test

rm: test/: Resource busy

GCE上でやってみる

こちらもよろしければ

GCS FUSEを使いGCE内のディレクトリとGCSを同期させる ~GCE x Ubuntu~

おしまい

最後まで読んでいただきありがとうございました。

2
1
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
2
1