アップロードされてから日がたっているファイルなどを削除したいと思う場面があると思うので買いておきます。
Firebase StorageはCloud Storage
Firebase StorageはGoogle Cloud Platformの Cloud Storageが使われています。
なので、オブジェクトのライフサイクルという機能を使って削除します。
gsutilコマンドのセットアップ
クイックスタート: gsutil ツールの使用
https://cloud.google.com/storage/docs/quickstart-gsutil
を見てもいいと思いますが、 Google Cloud Shellを使うのが便利です。
lifecycle_config.json の作成
lifecycle_config.json
には 何日経過したもの、何年以降のファイルを削除すると言ったことを記述していくファイルです。
$ tocuh lifecycle_config.json
$ vi lifecycle_config.json
下記のいくつかのサンプルを置いておきます。
3日以上たったファイルを削除する
{
"lifecycle": {
"rule":
[
{
"action": {"type": "Delete"},
"condition": {"age": 3}
}
]
}
}
2016年11月に作成されたファイルを全て削除する
{
"lifecycle": {
"rule":
[
{
"action": {"type": "Delete"},
"condition": {"CreatedBefore": "2016-12-01"}
}
]
}
}
CreatedBefore: この条件は、オブジェクトが指定の日付(UTC)の深夜より前に作成されていると満たされます。
と書いてあるので、12月1日の深夜より前に作成されているファイルが削除されます。
ライフサイクルを有効にする
$ gsutil lifecycle set lifecycle_config.json gs://bucket_name
Setting lifecycle configuration on gs://bucket_name
bucket_name
には自分のバケット名を入れます。これはFirebaseのコンソールからでも見れます。
get コマンドで確認してみると、ちゃんと設定されていることがわかります。
$ gsutil lifecycle get gs://bucket_name
{"rule": [{"action": {"type": "Delete"}, "condition": {"age": 3}}]}