CORS 配置允许 SCORM 用于 s3 和 CloudFront AWS

问题描述 投票:0回答:1

我正在尝试将系统的 SORM 包存储在 AWS 上,但遇到了不知道如何解决的 CORS 问题。 我创建了一个 S3 存储桶,在其中存储所有未压缩的 SCORM 文件。之后,我允许在 CloudFront 网页版上访问这些文件。直接访问时,CloudFront 生成的链接可以完美运行。 但是,当我在 PlayerScorm iframe 中添加链接时,由于 CORS 配置,大多数文件被阻止。

我已经尝试过 Stack Overflow 上其他相关问题中建议的解决方案,但没有成功。 有人可以教我如何在 AWS CloudFront 上配置它吗?

12/12/23 更新中... 我想 CORS 并不是唯一的问题。 我尝试了很多方法来解决这个问题,以至于我不再确切地知道我在做什么。我把逻辑放在一边,已经在尝试和错误了。 基础设施团队尝试了不同的方法来配置AWS,但似乎没有任何效果。 根据我的研究,RusticSoftware 为此创建了一个解决方案,即在播放器和 scorm 课程所在的文件服务器之间放置一个代理。

我正在尝试做以下事情: 我在 ec2 上有一个 LSM,域为 mylms.com 此 LSM 有一个 scorm 播放器,其响应如下:mylms.com/player.php?scorm= 该播放器将 iframe 指向 CloudFront 链接 aws.cloudfront.com/link/to/scorm/content/

CloudFront 链接链接到可获取 scorm 课程文件的 s3 存储桶。

当我指向本地文件(在 mylms.com 服务器内)时,一切正常。当我指向 CloudFront 时,浏览器会生成几个 CORS 和跨域错误。

amazon-web-services amazon-s3 cors amazon-cloudfront scorm
1个回答
1
投票

不幸的是,问题只是从 CORS 开始的。除非您的 SCORM 播放器与 Cloudfront 环境位于相同的域(或相同的父域,但有一些怪癖)上,否则它将无法播放。 SCORM 课程都使用 Javascript 来查看父框架和/或窗口,以搜索 LMS 呈现的特殊 Javascript 对象(SCORM 1.2 中的

API
,或 SCORM 2004 中的
API_1484_11
)以便进行操作。如果您的 Cloudfront 内容是一个单独的域,这将导致您无法绕过的浏览器安全异常。

最简单的方法是通过同一个域为您的应用程序和 SCORM 内容提供服务(因为您使用的是 Cloudfront,您可以将所有内容放在前面,然后通过路径将流量分叉到 webapp 环境和 SCORM 存储)并且你将避免这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.