Бесплатная миграция IT-инфраструктуры в облако
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Настройка CORS для доступа к объектам S3

Когда вы используете файлы из S3-бакетов на сторонних ресурсах, например, на веб-сайте, вы можете столкнуться с ошибкой, связанной с CORS (Cross-Origin Resource Sharing). Эта ошибка возникает, когда браузер блокирует кросс-доменные запросы к ресурсам вашего бакета.

Для решения проблемы необходимо задать специальные правила CORS для бакета, которые разрешат выполнение кросс-доменных запросов. Рассмотрим, как настроить CORS для S3-бакета с помощью утилиты AWS CLI.

Создание файла с правилами CORS

Для начала создайте файл cors.json с конфигурацией CORS, который позволит выполнять GET и HEAD-запросы на объекты вашего бакета. Вот пример файла cors.json:

{
  "CORSRules": [
	{
  	"AllowedHeaders": ["*"],
  	"AllowedMethods": ["GET", "HEAD"],
  	"AllowedOrigins": ["*"]
	}
  ]
}
  • AllowedMethods: указывает, какие HTTP-методы будут разрешены. В данном примере разрешены GET и HEAD запросы.

  • AllowedOrigins: "*" означает, что запросы разрешены с любого домена. Если вы хотите ограничить доступ только для определённого домена, укажите его вместо звёздочки.

Например, если ваш сайт расположен на домене https://example.com, замените строку на:

"AllowedOrigins": ["https://example.com"]

Загрузка правил CORS в бакет

После создания файла с правилами, загрузите его в ваш S3-бакет с помощью следующей команды:

aws s3api put-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud --cors-configuration file://cors.json

Проверка установленных правил CORS

Вы можете проверить, что правила CORS были успешно установлены, выполнив команду:

aws s3api get-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud

Удаление правил CORS

Если вам необходимо удалить текущие правила CORS, выполните команду:

aws s3api delete-bucket-cors --bucket имя_бакета --endpoint-url https://s3.timeweb.cloud

Команда удалит все существующие правила CORS для вашего бакета.

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев