Контроль доступа-разрешить-происхождение на aws javascript sdk getSignedUrl операция?

Можно ли установить access-control-allow-origin для операции getSignedUrl для объекта S3? Я искал список доступных параметров из документации aws, но неясно.

Обновление: предположим, у меня есть объект "test-file.jpg" в корзине с именем "test-bucket". В корзине не установлена ​​политика CORS. Подписанный URL-адрес, созданный методом getSignedUrl, выдает в браузере ошибку "отсутствует заголовок access-control-allow-origin заголовок".

var s3 = new aws.S3({'signatureVersion': 'v4'});
var options = {
    Bucket:"test-bucket",
    Key:"test-file.jpg",
    Expires:120
}
var signedUrl = s3.getSignedUrl('getObject', options);

Есть ли возможность установить access-control-allow-origin : * в приведенном выше вызове функции?

1 ответ

Решение

Нет способа сделать это. Вам нужно будет настроить CORS на ведро.

Есть несколько вариантов, например ResponseContentDisposition это заставляет S3 вводить дополнительные, настраиваемые заголовки ответа в ответ, когда предварительно выбранный URL используется для извлечения объекта. Для CORS такой опции нет.

Несколько сложный (но, казалось бы, эффективный) обходной путь может быть разработан с использованием CloudFront, Lambda@Edge, Origin Access Identity и CloudFront с предварительно подписанными URL-адресами. Триггер лямбда-ответа добавит заголовки ответа CORS к ответу S3, который будет санкционирован на S3 OAI после проверки подписанным URL-адресом CloudFront, а триггер лямбда-запроса сгенерирует любой предполетный ответ, который может потребоваться браузеру.,

Другие вопросы по тегам