Amazon s3 跨域问题::使用aws ec2、s3和cloudfront

Amazon s3 跨域问题::使用aws ec2、s3和cloudfront,amazon-s3,amazon-ec2,cross-domain,amazon-cloudfront,scorm2004,Amazon S3,Amazon Ec2,Cross Domain,Amazon Cloudfront,Scorm2004,该产品是在线学习LMS,托管在amazon ec2服务器上,内容(视频、scorm软件包)将由s3服务器提供 LMS EC2的链接是:myname.company-name.com s3 bucket的链接是:s3-name.company-name.com Scorm包希望从s3服务器提供服务,但由于跨域限制(浏览器)限制Scorm API通过HTML框架元素进行通信。(即使使用iframe元素也尝试过) 是否有办法配置s3 bucket name(cname)或cloudfront cnam

该产品是在线学习LMS,托管在amazon ec2服务器上,内容(视频、scorm软件包)将由s3服务器提供

LMS EC2的链接是:myname.company-name.com s3 bucket的链接是:s3-name.company-name.com

Scorm包希望从s3服务器提供服务,但由于跨域限制(浏览器)限制Scorm API通过HTML框架元素进行通信。(即使使用iframe元素也尝试过)

是否有办法配置s3 bucket name(cname)或cloudfront cname,以实现上述目的

注意:即使我们使用cloudfront发行版附加了s3,也可以说:将s3 bucket name添加到cloudfront url(AWS格式):.cloudfont.net,并尝试将cloudfront发行版的cname设置为与ec2实例名称相同

然而,ec2文件承载服务器端脚本、开发代码和通过s3提供的所有内容。因此,无法将所有ec2路径重定向到cloudfront cname或s3

仅s3-name.company-name.com之类的内容URL应重定向到s3,而不是将所有ec2实例文件重定向到cloudfront cname。aws服务配置是否有解决方案,以便通过ec2解决跨域问题,从s3和服务器文件提供内容

注:除aws服务配置灵活性外,上述ec名称和s3存储桶名称格式用于修复(不可更改)


非常感谢

我通常通过将SCO的index.html指向S3上的资源来解决这些问题,以避免您遇到的跨域问题。 这允许从A域托管index.html,从B域加载资产和资源,并允许JavaScript到JavaScript API继续正常工作。同时,您仍然可以获得缓存的好处,甚至可以共享常用脚本、图像和其他资产以节省带宽。 我还对它们进行了路径设置,使其//而不是http://因此它可以独立于协议工作。请注意,如果您为本地文件系统部署发布这些文件,您将由于file://vs//而出现问题。因此,对于“一刀切”的解决方案,可能需要其他一些发布选项或使用其他类型的动态加载程序

或者,也有一些IFRAME黑客可以绕过这个问题。然而,这是我通常不提倡的


上述两个选项通常都需要重新部署,但结果是您的SCO要小得多。一个imsmanifest.xml,其中包含一个index.html和所有文件夹和文件。

我通常通过将SCO的index.html指向S3上的资源来解决这些问题,以避免您遇到的跨域问题。 这允许从A域托管index.html,从B域加载资产和资源,并允许JavaScript到JavaScript API继续正常工作。同时,您仍然可以获得缓存的好处,甚至可以共享常用脚本、图像和其他资产以节省带宽。 我还对它们进行了路径设置,使其//而不是http://因此它可以独立于协议工作。请注意,如果您为本地文件系统部署发布这些文件,您将由于file://vs//而出现问题。因此,对于“一刀切”的解决方案,可能需要其他一些发布选项或使用其他类型的动态加载程序

或者,也有一些IFRAME黑客可以绕过这个问题。然而,这是我通常不提倡的


上述两个选项通常都需要重新部署,但结果是您的SCO要小得多。一个imsmanifest.xml,包含一个index.html和所有文件夹和文件。

请参阅CloudFront中我的关于CORS配置。请参阅CloudFront中我的关于CORS配置。内容托管在s3上,LMS位于EC2上。这就是交叉doamin问题的原因:ec2和s3域名的格式有问题。我想解决那个问题。我无法更改内容,但如果需要,可以灵活地在s3、cloudfront和ec2上进行ddo配置……内容托管在s3上,LMS位于ec2上。这就是交叉doamin问题的原因:ec2和s3域名的格式有问题。我想解决那个问题。我无法更改内容,但如果需要,可以灵活地在s3、cloudfront和ec2上进行ddo配置。。。