0

この製品は、amazon ec2サーバーでホストされているeLearning LMSです。コンテンツ(ビデオ、scormパッケージ)はs3サーバーから提供されます。 S3バケットのためのリンクは言うされmyname.company-name.com :クロスドメインの問題:: aws ec2、s3とクラウドフロント

LMS EC2のリンクが言うあるs3-name.company-name.com

SCORMパッケージはS3サーバから提供したいが、クロスドメインの制限(ブラウザ)によって、HTMLフレーム要素を介して通信するためのscorm APIが制限されているためです。 (iframe要素でも試しました)

s3バケット名(cname)またはクラウドフロントcnameを設定して上記の目的を達成する方法はありますか?

注:私たちは、CloudFrontの分布とS3を取り付けた場合でも、言う:S3バケットCloudFrontのURLを(AWS形式)に名前:.cloudfont.netとEC2インスタンス名と同じ

に分布をCloudFrontのためにCNAMEを与えることを試みるが、ec2ファイルはホストサーバー側のスクリプティング、開発コード、およびs3経由で提供されるすべてのコンテンツをファイルします。したがって、すべてのec2パスをクラウドフロントのcnameまたはs3にリダイレクトします。

s3-name.company-name.comのようなコンテンツURLは、すべてのec2インスタンスファイルをクラウドフロントcnameにリダイレクトする必要はなく、s3にリダイレクトする必要があります。 awsサービス設定の回避策がありますので、ec2経由のドメイン間の問題を介してコンテンツがs3およびサーバーファイルから提供されますか?

注:離れてAWSサービスの設定flxibilityから - 上記のEC名およびS3バケット名の形式は、修正(変更不可)

感謝をすることです!

+0

CloudFrontのCORS設定については、私の[回答](http://stackoverflow.com/questions/38187127/get-around-cross-origin-resource-sharing-on-amazon-aws/38247295#38247295)を参照してください。 –

答えて

0

私は一般的に、SCOのindex.htmlをS3上のリソースに照会することで、これらの問題を解決しています。 これにより、Aドメインからホストされているindex.htmlがBドメインからアセットとリソースをロードできるようになり、JavaScriptからJavaScriptへのAPIが正常に機能し続けます。その間、キャッシュの利点が得られ、一般的なスクリプト、画像、その他の資産を共有して帯域幅を節約することさえ可能になります。 私はそれらを// http(s)でないようにパスします://それで、プロトコルとは独立して動作することができます。ローカルファイルシステムのデプロイメントでこれらをリリースした場合、file:// vs //のために問題が発生することに注意してください。したがって、他のパブリッシングオプションや、他の種類のダイナミックローダーを使用すると、ワンサイズのソリューションに必要な場合があります。

また、これを回避するためのIFRAMEハッキングもあります。それは私が一般的に主張していないものです。

通常、上記の両方のオプションでは再デプロイメントが必要ですが、その結果、SCOのサイズがはるかに小さくなります。 1つのindex.htmlを持つimsmanifest.xmlとすべてのフォルダとファイル。

+0

コンテンツはs3でホストされ、LMSはEC2でホストされます。そして、それが十字問題の理由です:ec2とs3のドメイン名の形式が問題になっています。私はその問題で回りたいです。私はコンテンツを変更することはできませんが、必要に応じてs3、cloudfront、ec2の設定を変更する柔軟性があります... –

関連する問題