如何通过CLI查询AWS S3 INTELLIGENT_TIERING对象的实际分层状态?
获取S3智能分层对象的细粒度存储层状态
要查询单个INTELLIGENT_TIERING存储类对象的具体分层(Frequent Access/Infrequent Access/Archive Instant Access),可以通过以下CLI方式实现:
单个对象查询:AWS CLI head-object命令
AWS CLI的head-object操作会返回对象的完整元数据,包括智能分层的子层信息(前提是对象已完成分层转换)。执行命令:
aws s3api head-object --bucket <你的存储桶名称> --key <对象键>
在JSON响应中,IntelligentTieringAccessTier字段会明确标识当前分层:
FREQUENT_ACCESS→ 对应控制台指标IntelligentTieringFAStorageINFREQUENT_ACCESS→ 对应控制台指标IntelligentTieringIAStorageARCHIVE_INSTANT_ACCESS→ 对应控制台指标IntelligentTieringAIAStorage
如果只需提取该字段,可添加--query参数简化输出:
aws s3api head-object --bucket <你的存储桶名称> --key <对象键> --query 'IntelligentTieringAccessTier' --output text
curl HEAD请求的补充说明
你之前用curl发送HEAD请求未获取到分层信息,是因为S3默认不会在HEAD响应中返回x-amz-intelligent-tiering-access-tier头部。若要通过curl获取,需添加x-amz-metadata-directive: REQUESTED请求头:
curl -H "x-amz-metadata-directive: REQUESTED" -I https://${bucket}.s3.${region}.amazonaws.com/${object}
此时响应中会出现该头部,显示对象当前的分层状态。
批量查询多个对象
若需批量查询存储桶内所有智能分层对象的状态,可使用list-objects-v2命令结合过滤参数:
aws s3api list-objects-v2 --bucket <你的存储桶名称> --query 'Contents[?StorageClass==`INTELLIGENT_TIERING`].[Key, IntelligentTieringAccessTier]' --output table
该命令会以表格形式列出所有符合条件的对象键及其对应分层。
内容的提问来源于stack exchange,提问作者Alex Reynolds
相关产品推荐
相关产品推荐

