什么是生命周期管理(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天后转为低频存储}]
}
关键字段说明
字段 | 说明 |
| 匹配对象 Key 的前缀(如 |
| 按标签过滤(如 |
| N 天后删除对象 |
| 指定日期删除 |
| 存储类别转换规则 |
| 支持 |
⚠️ 注意:MinIO 原生不支持 Glacier 类冷存储,但可通过外部系统集成实现。
实战:配置生命周期规则
方法一:通过 MinIO Console(图形化)
- 登录 MinIO Web 控制台
- 进入目标 Bucket
- 点击 “Lifecycle” 标签页
- 点击 “Create Rule”
- 配置:
- 前缀:
temp/
- 过期:30 天
- 转换:7 天后转为
STANDARD_IA
- 保存规则
方法二:通过 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)