我正在尝试使用boto3
put_bucket_lifecycle_configuration
设置amazons3 bucket中子目录的生命周期配置。我使用aws documentation中的代码作为参考:
lifecycle_config_settings = {
'Rules': [
{'ID': 'S3 Glacier Transition Rule',
'Filter': {'Prefix': ''},
'Status': 'Enabled',
'Transitions': [
{'Days': 0,
'StorageClass': 'GLACIER'}
]}
]}
我删除了Transitions
并添加了Expiration
,以更好地符合我的目的。这是我的密码:
myDirectory = 'table-data/'
lifecycle_config_settings = {
'Rules': [{
'ID': 'My rule',
'Expiration': {
'Days': 30,
'ExpiredObjectDeleteMarker': True
},
'Filter': {'Prefix': myDirectory},
'Status': 'Enabled'
}
]}
s3 = boto3.client('s3')
s3.put_bucket_lifecycle_configuration(Bucket=myBucket, LifecycleConfiguration=lifecycle_config_settings)
我收到的错误是:
An error occurred (MalformedXML) when calling the PutBucketLifecycleConfiguration operation: The XML you provided was not well-formed or did not validate against our published schema
是什么导致了这个错误?你知道吗
我遵循@michaelsqlbot的建议,找到了它不起作用的原因。你知道吗
此设置中的问题出现在
'ExpiredObjectDeleteMarker': True
内的Expiration key
。在boto3 documentation中有一个关于它的观察。你知道吗修复后,设置为:
相关问题 更多 >
编程相关推荐