停用 s3 存储桶上的版本控制

Pai*_*lou 2 versioning bucket amazon-web-services

我在我的存储桶上激活了版本控制。我用了 :

aws s3api put-bucket-versioning --bucket my_bucket --versioning-configuration Status=Enabled --endpoint-url https://XXXXXXXXX
Run Code Online (Sandbox Code Playgroud)

现在,我想停用该存储桶上的版本控制。所以,我有两个问题:

  • 我需要使用:aws s3api put-bucket-versioning --bucket my_bucket --versioning-configuration Status=Suspended --endpoint-url https://XXXXXXXXX

或者我是否需要在“状态”行编辑 ./lifecycle.json 文件?

{
    "Rules": [
        {
            "ID": "Delete old versions after 90 days",
            "Status": "Enabled",   -> Suspended 
            "Prefix": "",
            "NoncurrentVersionExpiration": {
                "NoncurrentDays": 90
              }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

也许,这两种解决方案都有效?

  • 我的第二个问题是:存储桶中的版本会被删除吗?我的意思是,带有该版本的版本"IsLatest": true,会被保存吗?

最好的

Joh*_*ein 5

版本控制无法关闭,只能暂停。

所以,是的,您可以用来Status=Suspended停用版本控制过程。

生命周期操作独立于存储桶的版本控制状态。您的生命周期策略配置为在 90 天后删除以前的版本。保留其当前配置,旧版本将在接下来的 90 天内继续过期。之后,它不会执行任何操作,因为没有新版本的对象将过期,因此您可以删除生命周期规则。(所以,暂时不要改变任何东西。)

如果您希望立即删除所有非当前版本的对象,可以修改 Lifecycle 规则并设置NoncurrentDays为 1,以使版本更快地过期(删除)。(我不确定它是否适用于零。)