MinIOのライフサイクルを有効化する

MinIOのライフサイクルの設定がGUIからできなくなったのでmcコマンドを使って設定する。

オブジェクトストレージとしてMinIOを使っていますが、GUI(MinIO Webコンソール)からバケットごとにライフサイクルを設定できなくなりました。
データのバックアップ用途として使う場合、ライフサイクルを設定することで、例えばアップロードされてから1ヶ月経過したファイルは自動で消すといったことができ、ストレージの使用量を削減できます。
で、リリースノートをざっと眺めても、バグなのか仕様なのかわからず困りました。

今回、MinIOを操作するクライアントコマンドであるmcを用いて、ライフサイクルを設定したので忘れないように残しておきます。

環境

  • Ubuntu 22.04
  • MinIO on Docker(Version: RELEASE.2025-01-18T00-31-37Z)
  • mc version RELEASE.2025-01-17T23-25-50Z

MinIOはDockerで動かしています。バイナリだとバージョンアップが手間なので。。。

mcコマンドのインストール

MinIO Client — MinIO Object Storage for Linuxに書いてあります。

mcコマンドはaptでインストールできないため、以下のようにしました。

1
2
3
curl https://dl.min.io/client/mc/release/linux-amd64/mc   --create-dirs   -o $HOME/minio-binaries/mc
sudo mv mc /usr/bin/
sudo chmod +x /usr/bin/mc

MinIOに接続するために、アクセスキーを登録します。
ALIASはlocal、HOSTNAMEは http://localhost:9000 とし、MinIOに接続すためのアクセスキーとシークレットキーを記載します。

1
2
3
bash +o history
mc alias set ALIAS HOSTNAME ACCESS_KEY SECRET_KEY
bash -o history

mc ls local みたいな感じでMinIOのバケットが見えれば大丈夫です。

1
2
$ mc ls local
[2025-01-19 01:24:01 JST]     0B misskey.7ka.org/

ライフサイクルの設定

Object Lifecycle Management — MinIO Object Storage for Linuxに書いてあります。

例えば、バケット misskey.7ka.org に対して30日でファイルを消したい場合は次のようにします。

1
mc ilm rule add --expire-days 30 local/misskey.7ka.org

設定したライフサイクルを確認する際は、rule lsを使います。

1
mc ilm rule ls local/misskey.7ka.org

出力結果は次のとおりです。Enabledになっています。

1
2
3
4
5
6
7
8
$ mc ilm rule ls local/misskey.7ka.org
┌───────────────────────────────────────────────────────────────────────────────────────┐
│ Expiration for latest version (Expiration)├──────────────────────┬─────────┬────────┬──────┬────────────────┬─────────────────────┤
│ ID                   │ STATUS  │ PREFIX │ TAGS │ DAYS TO EXPIRE │ EXPIRE DELETEMARKER │
├──────────────────────┼─────────┼────────┼──────┼────────────────┼─────────────────────┤
│ cu5tca6g297043gf7aag │ Enabled │ -      │ -    │             30false└──────────────────────┴─────────┴────────┴──────┴────────────────┴─────────────────────┘

設定したライフサイクルを削除したい場合は rule rmを使います。

1
mc ilm rule rm --id "cu5tc3mg29703mip8620" local/misskey.7ka.org

複数のバケットをまたがってライフサイクルのルールを確認する方法はなさそうです。

あとがき

久しぶりにMinIOを構築したのですが、先月まで存在した設定画面が消えていて焦りました。MinIOなんもわからん。
初めてmcコマンドを触ってヒーコラいってました。解決できて良かったです。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。