Google Drive の仕組みと概要
概要
- Google Apps のネットワークドライブ
- S3 や GCS に近い仕組みになっており通常の HDD とは異なる
- HDD のようにして使うと API 制限にすぐ到達する
- ファイルが所属するディレクトリのことを
parentという - GCP の Google Drive API を利用することでプログラマティックに操作できる
仕組み
- ファイルとディレクトリには名前とは別に
fileIdと呼ばれる固有のハッシュ値のようなものが存在する fileIdがつながることで木構造になりディレクトリ構造を提供している- 構造例
fileId1(ディレクトリ)fileId2(ファイル)fileId3(ディレクトリ)fileId4(ファイル)fileId5(ファイル)
Python での利用例
使用できるクライアントソフト
(macOS) Google Drive for Desktop
- 公式クライアント
- macOS で実行すると SMB プロトコルで
/Volumes/GoogleDrive/にマウントされる - 公式で実装されているので CLI でアクセスしても安定している
(Windows) Google Drive for Windows
- 特徴
- macOS 版は
/Volumes以下に配置されるが Windows 版は Google Drive という名前のハードディスクが作成される - データの管理方式はストリーミングとミラーリングがある
- ストリーミング -> アクセス時にデータを取得
- ミラーリング -> すべてのデータをミラーリング(HDD の消費が激しい)
- パスの実態
C:\Users\<username>\AppData\Local\Google\DriveFSであり張り替えることは可能
- macOS 版は
/gdrive/
- Linux と macOS で使用できる CUI クライアント
どれくらいの容量を契約すればいいのか
- 結論
- 最小の契約の 100 GB で十分
- 理由
- そもそもエグレス料金を無視した料金体系で金額的に相当マージンを乗せているため他社に比べて高い
- あふれるようなデータは Backblaze や S3 で保存すればよい
- どうしてもエグレス料金がかさみそうなときは self-host で解決する
- 環境がない場合、/bore/などで自分のコンピュータのポートを公開すれば世界からアクセス可能になる
トラブルシューティング
たくさんのファイルの移動・削除ができない
- macOS や Windows のクライアントで操作すると極端に遅くなるので WebUI から行う