存储scorm内容的最佳实践

时间:2017-11-07 05:19:12

标签: scorm

我正在开发一个播放SCORM内容的电子教学应用程序。我正在使用Angular和Spring Boot作为后端。我想知道存储上传的SCORM包的最佳实践。我是SCORM的新手。

我的问题是:在SCORM的情况下,是否建议将它们保存到服务器或projects文件夹中的assets文件夹?我知道一般建议将上传的内容保存到服务器,但是如何加载相关的JS和图像文件?我希望能指出正确的方向。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

通常,SCORM内容是静态文件,必须直接从Web服务器提供,并由SCO在课程中加载。各个SCO有一个文件,它是启动的入口点,其余的资产都是典型的Web资产。

我对您的目标平台了解不足以了解您所谓的“服务器”和“资产文件夹”之间的区别。请注意,播放SCORM内容比简单地解压缩内容并托管它们要多得多,您需要提供JS运行时API等。

答案 1 :(得分:0)

显然,您要小心用户可能在您的网络应用中上传的任何内容。在这种情况下,我倾向于选择一个"处理程序"方法

第一步是选择我想保留提取资产的地方。 可以在服务器上,但有时候你无法做到这一点(也许你在负载均衡器后面有多个服务器,所以谁知道请求可以去哪个服务器,或者可能它只是一个带短暂存储的云实例,或者其他什么)所以在这种情况下,你可能需要将文件存储在某些外部云盘或blob / S3或其他任何东西中。选择适合您应用的任何地方。

第二步是为包内容定义处理程序路由。它不必与当前存储内容的方式有任何关系。也许你想要一个像/lms/:pkgid/*这样的路由,其中​​:pkgid代表SCORM包的ID,*指的是路径的其余部分。由于您知道文件的位置,因此您可以获取该文件的流并将其作为响应传递,确保您具有正确的mime类型集。

这有几个优点 - 一个是外面的人不知道你的服务器文件结构是什么,这使得制作恶意文件路径更加困难。此外,您可以将文件存储在应用程序不可执行的位置,因为您要做的就是将文件流传递给响应。由于您在每个请求中都有包ID,因此您还可以确保每个请求都有权获取该文件。最后,它允许您在将来更改文件结构,而不会影响您的用户。如果您确实将它们放在服务器上的安全位置,但稍后需要将它们移动到云位置,您只需更新处理程序,以便它知道文件流位于新位置,但路由(以及您的用户'书签!)不必更改。