AWS S3生命周期配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS S3生命周期配置相关的知识,希望对你有一定的参考价值。

我想设置S3存储,使生成后,他们在桶中的每个文件都将被删除7天,生命周期规律。

如果我设置了生命周期规则如下(下面是terraform代码,类似于控制台设置,所以我只是用它在这里),将在桶中的所有文件“测试”来之后,从7今天天揭开或将每个文件在不同的日期删除,因为它们是在不同的日子创造出来的?我希望他们能够在不同的日期被删除,不在一起。

顺便说一句,我想我并不需要配置:永久删除以前的版本,因为我的S3是不是版本启用。如果我错了请纠正我。

resource "aws_s3_bucket" "s3" {
  bucket        = "test"
  lifecycle_rule {
    id      = "remove_after_7d"
    enabled = true
    expiration {
      days = 7
    }
  }
}
答案

对象将他们的个人创作7天后被删除 - 您创建规则后没有7天。如果,例如,在一个桶中的所有对象都至少7天的时候,他们都应该大约24小时内与您创建规则后消失。

注意,定时不准确的,因为删除过程是在后台完成的,因此对象通常会徘徊了几个小时的时间比你想的那样,如果你认为exacrly 7×24小时的对象多长时间留在桶。这可能需要一两天的首次创建策略后的对象消失。然而,一旦该政策对所有对象被充分评估,S3将停止向您索要过期的对象的存储时,他们的过期时间到达时,即使删除过程并没有得到身边真正删除它们,但。

对于非版本桶,你是正确的 - 没有以前的版本中删除。使用版本控制叶片通常是一个好主意,不过,因为它消除了数据丢失的不小心删除或覆盖的对象,无论出于何种原因(如在你的应用程序中的错误)的风险。

另一答案

据我所知,以上配置后会从桶中创造7天删除桶。如果你想以后从该对象创建一个特定的日子删除特定文件,那么就不得不提到路径作为前缀。例如。删除log.txt的是桶的日志文件夹中:

resource "aws_s3_bucket" "bucket" 
 {
  bucket = "<<bucket_name>>"
  acl    = "private"

  lifecycle_rule {
  id      = "log"
  enabled = true
  prefix = "log/log.txt"


  expiration {
           days = 7
             }

} }

但我面临的一个问题(错误409),同时更新现有的桶。

以上是关于AWS S3生命周期配置的主要内容,如果未能解决你的问题,请参考以下文章

如何在 AWS S3 生命周期过期前缀规则中使用正则表达式

S3 存储桶中文件的生命周期规则

AWS Glue 作业生命周期 - 笔记本到作业

php S3 PHP SDK提供Bucket生命周期配置

关于片段生命周期

调用 replace() 时片段的生命周期是啥?