Контроль доступа-разрешить-происхождение на 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, а триггер лямбда-запроса сгенерирует любой предполетный ответ, который может потребоваться браузеру.,