Amazon s3 如何使用策略根据筛选条件删除S3文件夹?

Amazon s3 如何使用策略根据筛选条件删除S3文件夹?,amazon-s3,Amazon S3,如何使用bucket策略根据指定的条件删除S3 bucket中的对象 每次存储桶中的对象总数应大于5 对象应具有公共前缀 对象年龄应大于X(1,2,3,4…n)天 铲斗结构- myprefixtest1234bucket //bucket |- prefixtestobject1 //object |- prefixtestobject2 |- prefixtestobject3 |- prefixtestobject4

如何使用bucket策略根据指定的条件删除S3 bucket中的对象

  • 每次存储桶中的对象总数应大于5
  • 对象应具有公共前缀
  • 对象年龄应大于X(1,2,3,4…n)天
  • 铲斗结构-

    myprefixtest1234bucket //bucket 
            |- prefixtestobject1 //object
            |- prefixtestobject2
            |- prefixtestobject3
            |- prefixtestobject4
            |- prefixtestobject5
            |- prefixtestobject6
            |- prefixtestobject7
            |- testobject8
            |- testobject9
    
    我正在尝试删除具有前缀的bucket中的对象 “prefixtext”且早于X天,此存储桶应保持Y 即使对象的时间早于X天,也始终存在对象的数量。意味着保持对象的Y数量应优先于年龄(大于X天)

    我尝试了以下策略,但没有成功,不确定如何添加年龄和对象计数逻辑

    {
    "Id": "Policy123456",
      "Version":"2012-10-17",
      "Statement":[
        {
          "Sid":"TestBucketObjectDeletion",
          "Effect":"Allow",
          "Principal": {"AWS": ["arn:aws:iam::123456789:root"]},
          "Action":["s3:DeleteObject"],
          "Resource":["arn:aws:s3:::myprefixtest1234/*"],
          "Condition":{"StringEquals":{"myprefixtest1234"}}
        }
      ]
    }
    
    目前,没有办法指定保留的数量(1,2,3…n) 对象,并根据公共前缀删除其余对象 但是我们可以使用 铲斗生命周期

    并使用s3api将其放在如下位置-

    aws s3api put-bucket-lifecycle-configuration  \
    --bucket bucketname  \
    --lifecycle-configuration file://lifecycle.json
    
    更多信息请点击这里- 和

    aws s3api put-bucket-lifecycle-configuration  \
    --bucket bucketname  \
    --lifecycle-configuration file://lifecycle.json