24
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FirebaseAdvent Calendar 2016

Day 15

Firebase Storageのファイルを定期的に自動で削除する

Posted at

アップロードされてから日がたっているファイルなどを削除したいと思う場面があると思うので買いておきます。

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のコンソールからでも見れます。

スクリーンショット 2016-12-15 23.14.06.png

get コマンドで確認してみると、ちゃんと設定されていることがわかります。

$ gsutil lifecycle get gs://bucket_name
{"rule": [{"action": {"type": "Delete"}, "condition": {"age": 3}}]}
24
13
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
24
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?