Недействительно в соответствии с политикой: условие политики не выполнено: [eq, $x-amz-storage-class, STANDARD_IA]

Я пытаюсь указать класс хранилища для объекта AWS S3 (файл изображения) при его загрузке с веб-страницы. Все отлично работает без спецификации класса хранилища, но когда я добавляю ее в политику, страница перенаправляется на страницу с ошибкой с XML, которая указывает:

Invalid according to Policy: Policy Condition failed: ["eq", "$x-amz-storage-class", "STANDARD_IA"]

Я пробовал разные значения для класса хранения, такие как верхний/нижний регистр, СТАНДАРТ, СТАНДАРТ-IA и т. д., но ничего не работает. Любая помощь будет оценена по достоинству.

Это политика объекта до ее кодирования:

{
    "expiration": "2040-01-01T00:00:00Z",
    "conditions": [ 
        {"bucket": "dev-image"},
        ["starts-with", "$key", ""],
        {"acl": "private"},
        {"success_action_redirect": "http://localhost/Image.jsp"},
        ["starts-with", "$Content-Type", ""],
        {"x-amz-storage-class": "STANDARD_IA"},              <<<<< Causes Problem
        ["content-length-range", 0, 10485760]
    ]
}

person glez    schedule 23.11.2020    source источник
comment
Поле должно быть добавлено как в форму, так и в политику. См. мой ответ здесь.   -  person glez    schedule 24.11.2020


Ответы (1)


Сообщение об ошибке указывает, что поля формы не соответствуют условиям политики. Условия политики должны совпадать 1:1 с полями формы; они должны совпадать по имени и значению. Добавление в форму поля ввода x-amz-storage-class со значением STANDARD_IA исправляет ошибку.

person glez    schedule 24.11.2020