繁体   English   中英

使用 boto3 创建 S3 生命周期策略时出现格式错误的 XML 错误

[英]Malformed XML error while creating the S3 life cycle policy using boto3

我正在尝试使用 boto3 将生命周期规则添加到 s3 存储桶。 但遇到以下错误“添加生命周期时出错调用 PutBucketLifecycleConfiguration 操作时发生错误(MalformedXML):您提供的 XML 格式不正确或未根据我们发布的架构进行验证” 知道为什么我会收到此错误吗?

这是我要创建的规则

s3 = boto3.resource("s3")
bucket_lifecycle_configuration = s3.BucketLifecycleConfiguration(bucket_name)
date = date.today()


response = bucket_lifecycle_configuration.put(
                LifecycleConfiguration={
                    'Rules': [
                        {
                            'Expiration': {
                                'Date': datetime(date.year, date.month, date.day),
                                 
                                'ExpiredObjectDeleteMarker': True
       
                                
                            },
                            'ID': 'Move unused bucket to Glacier',
                            'Prefix': '',
                            'Status': 'Enabled',
                            'Transitions': [
                                {
                                    'Date': datetime(date.year, date.month, date.day),
                                    'StorageClass': 'GLACIER'
                                }
                            ],
                            'NoncurrentVersionTransitions': [
                                {
                                    'NoncurrentDays': 123,
                                    'StorageClass': 'GLACIER'
                                }
                            ],
                            'NoncurrentVersionExpiration': {
                                'NoncurrentDays': 123
                            },
                            'AbortIncompleteMultipartUpload': {
                                'DaysAfterInitiation': 123
                            }
                        },
                    ]
                }
            )

这是因为ExpiredObjectDeleteMarker标志不能与DatesDays一起使用。 这就是MalformedXML异常的原因。 它在所附参考资料中进行了解释。

另请注意NoncurrentVersionExpiration日期不能与NoncurrentVersionTransitions日期相同。 截止日期应在过渡日期之后。

参考: put_bucket_lifecycle_configuration

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM