首页/系统与基础设施/存储速查/S3 对象标签与元数据管理
分布式与对象存储70 条

S3 对象标签与元数据管理

对象标签是可独立读写的键值对,能被生命周期、复制与权限策略引用;用户元数据只能在写入时通过请求头设定、改动需重写对象,因此可变的管理属性适合放标签、稳定的内容属性放元数据。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​​‌​​‌‌​‌​‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​‌​​​‌‌​​​​‌​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

标签与元数据的差别

对象除了数据本身,还挂着两类描述信息:一类是上传时由请求头携带的元数据,属于对象自身的一部分,改动它需要重新写入对象;另一类是标签,是不占用请求头额度的独立键值对,服务端可以在生命周期、复制与权限策略里直接引用它。把可变的管理属性和不可变的内容属性分开设计,是对象存储建模的关键一步。

基本信息

元数据类型系统元数据(服务端维护)与用户元数据(自定义键值)
设置时机用户元数据仅在写入时通过请求头指定
标签形式键值对,数量与长度有限制(以官方文档为准)
标签用途生命周期、复制规则、权限策略的条件判断

典型使用场景

  • 成本归类:按标签统计某个项目或部门占用的容量
  • 分级存储:按标签把不同敏感级别的数据转入不同存储层
  • 数据治理:用标签标记数据来源、保留要求与责任人
  • 权限细分:策略以标签为条件,只允许特定标签的数据被读取
  • 批量操作:复制与生命周期规则按标签筛选目标对象

设置与读取

设置与读取
# 上传时带用户元数据(服务端按请求头存储)
aws s3api put-object --bucket demo-bucket --key report.csv --body report.csv \
  --metadata owner=finance,mode=archive
# 读取对象时元数据随响应头返回
aws s3api head-object --bucket demo-bucket --key report.csv
# 标签是独立的键值对,可单独读写
aws s3api put-object-tagging --bucket demo-bucket --key report.csv \
  --tagging 'TagSet=[{Key=tier,Value=cold}]'
aws s3api get-object-tagging --bucket demo-bucket --key report.csv

两者对比

维度用户元数据标签
修改方式需重新写入对象可独立设置与更新
策略引用不能作为策略条件可作为生命周期与权限条件
数量与体积占用请求头额度有独立的数量与长度限制
检索方式随对象返回,不能批量筛选可按标签筛选与批量处理

设计建议

  • 稳定性高的信息放元数据,会随运营变化的属性放标签
  • 标签键命名统一(项目、环境、等级、责任人),便于跨桶聚合
  • 不要用标签存放大段文本,标签适合短标识而非内容
  • 标签要有变更流程,否则策略依赖的标签被改掉会引发权限意外
  • 定期盘点无标签的存量对象,补齐治理缺失的部分
元数据在服务端按请求头解析,键名会被规范化为小写;客户端读回时大小写可能与写入时不同,不要依赖大小写做匹配。
标签数量有上限,需要更多维度的管理属性时,通常的做法是把汇总信息写进对象索引而不是堆在对象标签上。

易错点

  • 把需要随业务变化的状态写进用户元数据,改一次要重写整个对象
  • 想让权限策略按元数据判断,实际上策略只认标签与部分系统属性
  • 标签键命名随意,跨桶统计时无法聚合出有效结论
  • 策略依赖的标签被谁改掉了没有记录,出现权限变更却查不到原因

数据来源与参考

  • Amazon S3 官方文档:对象标签(Object Tagging)
  • Amazon S3 官方文档:用户自定义元数据

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/s3-object-tags-metadata.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​​‌​‌‌​‌​‌‌​‌‌‌‌​‌‌​​​‌​​‌‌​‌​‌​​‌‌​​‌​‌​‌‌​​​‌‌​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌‌​​‌‌​​‌​‌‌​‌​‌‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​‌​​​‌‌​​​​‌​‌‌​​‌​​​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​​​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​