Политика корзины S3 — шрифт не отображается на веб-сайте

#php #amazon-web-services #svg #amazon-s3

#php #amazon-веб-сервисы #svg #amazon-s3

Вопрос:

Привет, я пытаюсь получить данные с s3 на своем сайте, все работает хорошо, но шрифты не отображаются. Вот моя политика

 {
    "Version": "2008-10-17",
    "Id": "http referer policy example",
    "Statement": [
        {
            "Sid": "Allow get requests originated from 54.148.239.58",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket/*",
            "Condition": {
                "StringLike": {
                    "aws:Referer": [
                        "https://s3-us-west-2.amazonaws.com/bucket/*",
                        "http://54.148.239.58/*"
                    ]
                }
            }
        }
    ]
}
  

Вывод: —
http://54.148.239.58/s3_file_exit_ck1.php?link=663amp;page=4

Я не знаю, что я делаю не так.

Если я удалю https://s3-us-west-2.amazonaws.com/bucket /* из политики .svg-файлы не отображаются.

Но это не работает,

 @font-face {
    font-family: ZapfDingbatsStd_2b4;
    src: url("https://s3-us-west-2.amazonaws.com/htmlmanuals/663/fonts/ZapfDingbatsStd_2b.woff") format("woff");
}
  

он работает на локальном хостинге.

пожалуйста, помогите

Ответ №1:

Согласно консоли в моем веб-браузере, когда я захожу на вашу страницу, появляется сообщение об ошибке:

Шрифт из источника ‘https://s3-us-west-2.amazonaws.com ‘ был заблокирован от загрузки политикой совместного использования ресурсов разных источников: заголовок ‘Access-Control-Allow-Origin’ отсутствует на запрошенном ресурсе. Происхождение ‘http://54.148.x.x «следовательно, доступ к нему запрещен.

Похоже, что страница из одного домена ( s3-us-west-2.amazonaws.com ) пытается ссылаться на данные из другого домена ( 54.148.x.x ). Это запускает проверки совместного использования ресурсов (CORS) в браузере.

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

Из документации по совместному использованию ресурсов (CORS):

Совместное использование ресурсов разных источников (CORS) определяет способ взаимодействия клиентских веб-приложений, загруженных в одном домене, с ресурсами в другом домене. Благодаря поддержке CORS в Amazon S3 вы можете создавать расширенные клиентские веб-приложения с помощью Amazon S3 и выборочно разрешать доступ из разных источников к вашим ресурсам Amazon S3.

Вам нужно будет добавить политику в свою корзину S3, чтобы разрешить страницам из 54.148.x.x доступа к ресурсам корзины.