Назад | Перейти на главную страницу

AWS CLI помещает конфигурацию жизненного цикла между бакетами

У меня есть корзина, для которой я вручную создал политику жизненного цикла объекта; теперь я хотел бы применить эту политику к другим сегментам. Я запускаю следующую команду, чтобы получить существующую политику:

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
      }
    }
  ]
}