У меня есть корзина, для которой я вручную создал политику жизненного цикла объекта; теперь я хотел бы применить эту политику к другим сегментам. Я запускаю следующую команду, чтобы получить существующую политику:
aws s3api get-bucket-lifecycle --bucket mybucket > s3_lifecyclepolicy.json
Что генерирует этот файл:
{
"Rules": [
{
"Expiration": {
"Days": 7
},
"ID": "7 Day Expire",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 14
}
}
]
}
Затем я пытаюсь применить политику следующим образом:
aws s3api put-bucket-lifecycle-configuration --bucket anotherbucket --lifecycle-configuration file://s3_lifecyclepolicy.json
Но получите эту ошибку:
A client error (MalformedXML) occurred when calling the
PutBucketLifecycleConfiguration
operation: The XML you provided was not well-formed or did not
validate against
our published schema
Я пробовал изменить json, и cli выдает ошибку с синтаксической ошибкой, поэтому json должен быть правильным, но я не уверен, откуда возникает ошибка, связанная с XML. Какие-либо предложения?
Кажется, что Prefix
является обязательным параметром, даже если он не отображается в get-bucket-lifecycle
вывод.
Эта версия работает:
{
"Rules": [
{
"Expiration": {
"Days": 7
},
"ID": "7 Day Expire",
"Prefix": "",
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 14
}
}
]
}