Как обслуживать файл AWS S3 с помощью Access-Control-Allow-Origin: * заголовок

#amazon-web-services #amazon-s3 #cors #cloudflare #same-origin-policy

#amazon-web-services #amazon-s3 #cors #cloudflare #политика того же происхождения

Вопрос:

У меня есть файл JS в S3, который получает Cloudflare CDN, прежде чем он, наконец, будет отправлен на передний план. Теперь у некоторых конечных пользователей ошибка CORS. Итак, я хочу добавить Access-Control-Allow-Origin: * в этот файл. Насколько мне известно, cloudflare автоматически передает заголовки, которые он получает, поэтому я пытаюсь найти способ добавить заголовок, пока он выбирается из S3.

https://docs.aws.amazon.com/AmazonS3/latest/userguide/cors.html#how-do-i-enable-cors

Нашел это руководство, но я не совсем уверен, как использовать в нем JSON.

 [
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "http://mydoman.com"
        ],
        "MaxAgeSeconds": 3000
    }
]
 

Правильно ли это выглядит? Кто-нибудь когда-нибудь добавлял подобные пользовательские заголовки при обслуживании файлов из s3? Может кто-нибудь предложить правильный JSON? Или что-то еще, что необходимо для этого?

Комментарии:

1. Вы пробовали использовать приведенный выше JSON?

2. Пока нет, этот файл передается многим клиентам. Изначально я пытаюсь создать новый файл и попытаться использовать его, но пока безуспешно, поэтому я подумал, может быть, кто-то уже сталкивался с этой проблемой и может что-то предложить, может быть, я чего-то не хватает. Я думаю, что есть способ сделать это и с помощью Cloudflare workers, но это кажется более сложным.

Ответ №1:

Предполагая, что другие части настройки верны, вы хотите:

 [
  {
    "AllowedHeaders": [
        "*"
    ],
    "AllowedMethods": [
        "GET"
    ],
    "AllowedOrigins": [
        "*"
    ],
    "MaxAgeSeconds": 3000
  }
]
 

В конечном итоге это приведет к созданию Access-Control-Allow-Origin: * заголовка при добавлении на вкладку «Разрешения» свойств корзины S3 в поле CORS в самом низу.

Комментарии:

1. Это не работает. Заголовки с изображениями s3 не отправляются.