设置桶生命周期

生命周期管理可以通过设置规则实现自动清理过期的对象,优化存储空间。本文介绍如何设置桶(Bucket)生命周期规则。 PutBucketLifecycleConfiguration操作可以设置桶的生命周期规则,规则可以通过匹配对象key前缀、标签的方法设置当前版本或者历史版本对象的过期时间,对象过期后会被自动删除

def put_bucket_lifecycle_configuration():
    try:
        resp = s3_client.put_bucket_lifecycle_configuration(
            Bucket='examplebucket',
            LifecycleConfiguration={
                'Rules': [
                    {
                        'Expiration': {
                            'Days': 3650,
                        },
                        'Filter': {
                            'Prefix': 'documents/',
                            'Tag': {
                                'Key': 'string',
                                'Value': 'string'
                            },                        
                        },
                        'ID': 'TestOnly',
                        'Status': 'Enabled',
                        'Transitions': [
                            {
                                'Days': 365,
                                'StorageClass': 'GLACIER',
                            },
                         ],
                         'NoncurrentVersionExpiration': {
                             'NoncurrentDays': 123,
                             'NewerNoncurrentVersions': 123
                        },
                        'AbortIncompleteMultipartUpload': {
                            'DaysAfterInitiation': 123
                        }
                    },
                ],
            },
        )
    
        print(resp)
    except ClientError as e:
        logging.error(e)

参数 类型 说明 是否必要
Bucket string 执行本操作的桶名称
LifecycleConfiguration LifecycleConfiguration 封装了生命周期规则的数组,最多包含1000条规则

关于LifecycleConfiguration一些说明

参数 说明
Prefix 需要过滤的前缀
Tag 需要过滤的Tag组包含key和value
Transitions 存储类型自动转换规则
NoncurrentVersionExpiration 针对历史版本过期
AbortIncompleteMultipartUpload 清理过期未完成分片

响应结果

HTTP状态 响应码 描述
200 Success 操作成功
400 MalformedXML 生命周期规则不合法
403 AccessDenied 用户没有权限执行操作
404 NoSuchKey 指定的桶不存在