什么是生命周期管理(Lifecycle Management)?

MinIO 的生命周期管理是一种基于规则的自动化机制,用于对 Bucket 中的对象进行:

操作

说明

✅ 自动过期(Expiration)

到期后自动删除对象

✅ 自动转换(Transition)

将对象从一种存储类型转为另一种(如标准 → 低频)

📌 核心价值

  • 降低存储成本
  • 自动清理过期数据
  • 满足合规要求(如 GDPR 数据保留策略)
  • 减少人工干预

核心概念:生命周期规则(Lifecycle Rule)

生命周期规则是一个 JSON 配置,包含以下关键字段:

{"ID": "rule-001",                     // 规则ID"Status": "Enabled",                  // 启用或禁用"Filter": {"Prefix": "logs/"                   // 作用对象前缀},"Expiration": {"Days": 30                          // 30天后过期删除},"Transitions": [{"Days": 7,"StorageClass": "STANDARD_IA"     // 7天后转为低频存储}]
}

关键字段说明

字段

说明

Filter.Prefix

匹配对象 Key 的前缀(如 backups/temp/

Filter.Tag

按标签过滤(如 env=dev

Expiration.Days

N 天后删除对象

Expiration.Date

指定日期删除

Transitions

存储类别转换规则

StorageClass

支持 STANDARDSTANDARD_IA(低频)等

⚠️ 注意:MinIO 原生不支持 Glacier 类冷存储,但可通过外部系统集成实现。

实战:配置生命周期规则

方法一:通过 MinIO Console(图形化)

  1. 登录 MinIO Web 控制台
  2. 进入目标 Bucket
  3. 点击 “Lifecycle” 标签页
  4. 点击 “Create Rule”
  5. 配置:
  • 前缀:temp/
  • 过期:30 天
  • 转换:7 天后转为 STANDARD_IA
  1. 保存规则

方法二:通过 mc 命令行工具

# 创建生命周期配置文件 lifecycle.json
cat > lifecycle.json << EOF
[{"ID": "auto-cleanup-temp","Status": "Enabled","Filter": {"Prefix": "temp/"},"Expiration": {"Days": 30},"Transitions": [{"Days": 7,"StorageClass": "STANDARD_IA"}]}
]
EOF# 应用到 bucket
mc ilm import myminio/mybucket --file lifecycle.json

方法三:通过 API 或 SDK(Go/Python/Java)

# Python 示例
from minio import Minioclient = Minio("minio.example.com:9000",access_key="admin",secret_key="password",secure=True)lifecycle_config = {"Rules": [{"ID": "log-retention","Status": "Enabled","Filter": {"Prefix": "logs/"},"Expiration": {"Days": 90}}]
}client.set_bucket_lifecycle("mybucket", lifecycle_config)