You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS S3版本控制与生命周期规则配置技术咨询

AWS S3版本控制与生命周期规则配置方案

首先明确:S3无法为桶内部分对象单独关闭版本控制——版本控制是桶级别的配置,要么全开要么暂停(暂停后新对象不会生成版本,但旧版本仍保留)。所以你的需求2中“不启用版本控制”无法实现,只能通过生命周期规则快速清理health前缀对象的版本。

一、生命周期规则配置步骤

需要创建两个独立的生命周期规则,利用前缀匹配实现差异化版本保留策略:

规则1:全局对象版本保留(15天)

  • 规则名称:Global-Version-Retention
  • 适用范围:前缀留空(匹配桶内所有对象,后续会被更具体的health规则覆盖)
  • 配置项:
    • 非当前版本(旧版本):设置为「创建后15天过期」
    • 删除标记:设置为「成为删除标记后15天过期」

规则2:health前缀对象版本快速清理

针对路径为/client/app/health-xxx的对象,前缀填写client/app/health-(S3前缀为字符串前缀匹配,无需通配符,该前缀会匹配所有以client/app/health-开头的对象)

  • 规则名称:Health-Object-Short-Retention
  • 配置项:
    • 非当前版本(旧版本):设置为「创建后1天过期」
    • 删除标记:设置为「成为删除标记后立即过期」(若控制台不支持0天则设为1天)

二、路径前缀的说明

你的对象路径/client/app/myFile、/client/app/health-xxx在S3中存储时,前缀是从桶根开始的字符串,因此client/app/health-完全可以精准匹配所有health开头的子路径对象,路径结构不会影响规则匹配。

三、提升测试效率的技巧

生命周期规则默认每日运行一次,测试时无需等待,可通过AWS CLI手动清理版本/删除标记:

批量删除health前缀的旧版本

# 列出所有非当前版本的health对象并批量删除
aws s3api list-object-versions --bucket YOUR_BUCKET_NAME --prefix client/app/health- --query 'Versions[?IsLatest==`false`].[Key, VersionId]' --output text | while read key version; do
  aws s3api delete-object --bucket YOUR_BUCKET_NAME --key "$key" --version-id "$version"
done

批量删除health前缀的删除标记

# 列出所有health对象的删除标记并批量删除
aws s3api list-object-versions --bucket YOUR_BUCKET_NAME --prefix client/app/health- --query 'DeleteMarkers[].[Key, VersionId]' --output text | while read key version; do
  aws s3api delete-object --bucket YOUR_BUCKET_NAME --key "$key" --version-id "$version"
done

替换YOUR_BUCKET_NAME为你的桶名即可快速完成测试验证,无需等待每日规则运行。

内容的提问来源于stack exchange,提问作者Nicolas B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:23:38