Междоменная проблема :: с aws ec2, s3 и cloudfront

Продукт представляет собой электронное обучение LMS - размещено на сервере amazon ec2, а контент (видео, пакеты scorm) будет обслуживаться с сервера s3.

Ссылка для LMS EC2: скажем: myname.company-name.com Ссылка для корзины s3: скажем: s3-name.company-name.com

Пакеты Scorm хотят обслуживаться с сервера s3, но из-за междоменных ограничений (браузер) ограничивает API-интерфейсы scorm для взаимодействия через элемент фрейма HTML. (даже пробовал с элементом iframe)

Есть ли способ настроить имя корзины s3 (cname) или cname облачного интерфейса, чтобы выполнялась указанная выше цель.

ПРИМЕЧАНИЕ.Даже если мы подключили s3 с распределением Cloudfront, скажите: s3 bucket name to cloudfront url (формат AWS): .cloudfont.net и попытайтесь дать cname для распространения Cloudfront так же, как имя экземпляра ec2

Однако файлы ec2 содержат сценарии на стороне сервера, код разработки и весь контент, обслуживаемый через s3. Таким образом, невозможно перенаправить весь путь ec2 на cname или s3 cloudfront.

URL-адреса контента, такие как s3-name.company-name.com, должны быть перенаправлены на s3, а не все файлы экземпляров ec2 на cname Cloudfront. Есть ли обходной путь с конфигурацией служб aws, чтобы контент обслуживался из файлов s3 и сервера через ec2, решая проблему междоменного взаимодействия?

ПРИМЕЧАНИЕ: помимо гибкости конфигурации сервисов aws - приведенные выше имена ec и s3 bucket name предназначены для исправления (не изменяемого)

Большое спасибо!


person Community    schedule 13.07.2016    source источник
comment
См. Мой ответ о CORS. Конфигурация в CloudFront.   -  person Deepak Chaudhary    schedule 14.07.2016


Ответы (1)


Обычно я решаю эти проблемы, указывая index.html SCO на ресурсы S3, чтобы обойти возникающие у вас междоменные проблемы. Это позволяет index.html, размещенному в вашем домене A, загружать активы и ресурсы из вашего домена B и позволяет API JavaScript в JavaScript продолжать работать должным образом. А тем временем вы по-прежнему получаете преимущества кэширования и, возможно, даже обмениваетесь общими скриптами, изображениями и другими ресурсами для экономии полосы пропускания. Я также пропускаю их, // чтобы не http (s): //, чтобы он мог работать независимо от протоколов. Обратите внимание: если вы когда-нибудь выпустите их для развертывания локальной файловой системы, у вас будут проблемы из-за file: // vs //. Поэтому для универсального решения могут потребоваться другие варианты публикации или использование какого-либо другого типа динамического загрузчика.

В качестве альтернативы есть несколько уловок IFRAME, чтобы обойти это. Однако это то, что я обычно не защищаю.

Оба упомянутых варианта обычно требуют повторного развертывания, однако в результате вы получаете гораздо меньшие SCO. Imsmanifest.xml с одним index.html по сравнению со всеми папками и файлами.

person Mark    schedule 13.07.2016
comment
Контент размещен на s3, а LMS - на EC2. И это причина того, что проблема перекрестного доступа заключается в следующем: формат для доменного имени ec2 и s3 предоставляется в вопросе. Я хочу обойти эту проблему. Я не могу изменить контент, но при необходимости могу настроить ddo на s3, cloudfront и ec2 ... - person ; 14.07.2016