我想使用 lambda 和 boto3 向 S3 存储桶添加多个生命周期规则。但是,使用 boto3,它似乎只允许您添加 1 个生命周期规则,这也会覆盖已经存在的规则。
例如,执行以下操作只会覆盖我拥有的任何预先存在的规则以及新编写的规则,并且只保留列表中的最后一个:
bucket_name = "test-bucket"
folder_paths = ["test_folder","test_folder1", "test_folder2"]
expiration = 1
for folder_path in folder_paths:
client = boto3.client('s3')
response = client.put_bucket_lifecycle_configuration(
Bucket=bucket_name,
LifecycleConfiguration={
'Rules': [
{
'Expiration': {
'Days': expiration
},
'ID': folder_path,
'Filter': {
'Prefix': folder_path
},
'Status': 'Enabled'
}
]
}
)
当然,使用 AWS 控制台可以在一个存储桶上添加多个单独的 S3 生命周期配置。
与 类似put_bucket_lifecycle_configuration
,我也尝试过put_bucket_lifecycle
,这给了我相同的结果。
有什么方法可以使用 boto3 在存储桶上添加多个 S3 生命周期配置?我错过了一些明显的东西吗?
任何帮助表示赞赏,并提前感谢!