Для небольшого тестового веб-приложения я ранее пытался установить конфигурацию CORS для корзины S3.У меня не было ACL и общедоступного доступа, настроенного на следующее:
(все проверено, кроме последнего варианта) ПОСЛЕ того как я установил следующую политику:
{
"Version": "2012-10-17",
"Id": "Policy1559671538244",
"Statement": [
{
"Sid": "Stmt1559671517813",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::somename/*"
}
]
}
Доступ к S3 работал нормально, мой локальный браузер мог получить доступ ко всем загруженным ресурсам.Однако затем мне нужно было активировать CORS для определенной страницы, и я добавил следующую конфигурацию CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Я неоднократно получал сообщение об ошибке No 'Access-Control-Allow-Origin' header is present on the requested resource.
Это не работало, пока я не деактивировал все параметры общего доступа к блоку,Это было неожиданно.Теперь я повторно активировал соответствующие опции Блокировать публичный доступ и, похоже, продолжает работать.Это наводит меня на мысль, что S3 интерпретирует конфигурацию CORS как новую политику общего доступа или как ACL.И поэтому настройки общего доступа блока заменяют также конфигурацию CORS.Я не видел это упомянутое в документации.Кто-нибудь знает больше об этом?