CrossDomain Access, HLS через CloudFront с подписанным URL(JWplayer)
Я использую потоковую передачу HLS с Amazon S3 и Cloud Front с использованием JWplayer. (С рельсами)
Я использовал подписанный URL-адрес для шифрования URL-адреса и создал идентификатор доступа к источнику, как указано в документации по Amazon Cloud Front. Подписанные URL генерируются нормально.
У меня также есть файл "crossdomain.xml" в моей корзине, который разрешает все источники (я дал "*"). Теперь, когда я пытаюсь воспроизвести мои видеофайлы HLS из своей корзины, я получаю проблему отказа в междоменном доступе.
Я думаю, что JW Player пытается получить доступ к файлу 'crossdomain.xml' без подписанного хэша. Итак, он получает эту ошибку.
Я протестировал мой файл в демоверсии JWplayer Stream, и это ошибка, которую я получаю в консоли.
Fetch API cannot load http://xxxxxxxx.cloudfront.net/xxx/1/1m_test.ts.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'http://demo.jwplayer.com' is therefore not allowed access.
The response had HTTP status code 403.
If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
Вот скриншот.
Пожалуйста, помогите мне. Благодарю вас.
Это ссылка, по которой я перешел для настройки своего дистрибутива CloudFront.
1 ответ
У меня просто была такая же проблема (но с Flowplayer). Я еще не уверен насчет угроз безопасности (и если все шаги необходимы), но я запустил его с:
- добавление разрешений на crossdomain.xml для всех, чтобы открыть / скачать
- добавление поведения в дистрибутив облачного фронта только для crossdomain.xml без ограничения доступа (выше поведения для * с ограниченным доступом)
- и затем я заметил, что в корзине ссылка на crossdomain.xml была похожа на " https://some-server.amazonaws.com/bucket.name/%1Fcrossdomain.xml" (обратите внимание на странный%1F) и что когда я переименовал файл crossdomain.xml, я мог удалить один невидимый символ в первой позиции имени (я не создал файл crossdomain.xml, поэтому я не уверен, как это произошло)
Изменить: У меня был hlsjs также работает с этим и делает доступным crossdomain.xml как-то отключил запрос CORS. Я все еще смотрю на это.