【发布时间】:2022-01-17 08:31:49
【问题描述】:
我想使用 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 生命周期配置?我错过了什么明显的东西吗?
任何帮助表示赞赏并提前感谢!
【问题讨论】:
标签: amazon-web-services amazon-s3 aws-lambda boto3 s3-lifecycle-policy