2017-11-07 2 views
0

저는 SCORM 콘텐츠를 재생할 응용 프로그램을 만들고 있습니다. 백엔드에 Angular 및 Spring Boot를 사용하고 있습니다. 업로드 된 SCORM 패키지를 저장하는 가장 좋은 방법을 알고 싶습니다. 나는 SCORM을 처음 접했습니다.스톰 콘텐츠를 저장하는 모범 사례

제 질문은 SCORM의 경우 서버 또는 assets 폴더의 assets 폴더에 저장하는 것이 좋습니다. 업로드 된 내용을 서버에 저장하는 것이 일반적으로 권장되지만 연결된 JS 및 이미지 파일을로드하는 방법은 알고 있습니다. 나는 올바른 방향으로 지적되고 싶다.

도움이 되었으면 좋겠습니다.

답변

0

일반적으로 SCORM 콘텐츠는 웹 서버에서 직접 제공되어야하며 코스의 SCO (들)에 의해로드되는 정적 파일입니다. 개별 SCO에는 시작되는 진입 점이있는 파일이 있고 나머지 자산은 일반적인 웹 자산처럼로드됩니다.

당신이 "서버"와 "자산 폴더"라고 부르는 것의 구분을 알기에 타겟 플랫폼에 대해 충분히 알지 못합니다. SCORM 콘텐츠를 재생하는 것보다 콘텐츠를 더 많이 포장하고 호스팅하는 것보다 더 많은 것이 있다는 점에 유의하십시오.

+0

답변 해 주셔서 감사합니다. SCORM 내용을 추적하기 위해 JS API를 노출해야한다는 사실을 알고 있으며 기본 호출과 데이터 모델을 구현하는 런타임 API로 거의 완료되었습니다. SCORM 컨텐츠를 애플리케이션에 제공하는 방법에 대해서는 아직 명확하지 않았습니다. –

+0

LMS가 런타임 API를 노출하고 있기 때문에 크로스 도메인을주의해야하며, 다른 mediaserver/콘텐츠 서버에서 서비스를 제공하려고 시도하면 샌드 박스에 넣을 수 있습니다. 이러한 이유로, 나는 일반적으로 당신이 지수를지지한다고 주장 할 것입니다.html 파일을 생성하여 컨텐츠 서버의 자산으로 다시 지정하면 하나 이상의 파일이 LMS와 동일한 도메인에 있습니다 – Mark

0

분명히 사용자가 원하는 콘텐츠 웹 앱에 업로드 할 수 있습니다. 이와 같은 경우에는 "처리자"접근 방식을 사용하는 경향이 있습니다.

첫 번째 단계는 추출 된 자산을 유지하고 싶은 곳을 선택하는 것입니다. 그것 서버에있을 수 있지만 할 수없는 때가 있습니다 (어쩌면 당신은로드 밸런서 뒤에 여러 개의 서버가있을 수 있습니다 그래서 어떤 서버가 요청을 갈 수 있는지, 아니면 그것은 일시적인 저장소 또는 기타) 그래서 어떤 경우에는 외부 클라우드 디스크 또는 BLOB/S3 또는 기타 파일을 저장할 필요가 있습니다. 애플리케이션에 적합한 곳을 선택하십시오.

두 번째 단계는 패키지 내용에 대한 처리기 경로를 정의하는 것입니다. 콘텐츠가 현재 저장되는 방식과 관련이 없습니다. 어쩌면 당신은 /lms/:pkgid/*과 같은 경로를 원할 것입니다. :pkgid은 SCORM 패키지의 ID를 나타내고, *은 나머지 경로를 나타냅니다. 파일이 어디에 저장되어 있는지 알기 때문에 해당 파일에 대한 스트림을 가져 와서 응답으로 전달하여 올바른 MIME 유형을 설정하도록 할 수 있습니다.

이것은 외부에있는 사람이 서버 파일 구조가 무엇인지 알지 못하기 때문에 악의적 인 파일 경로를 조작하기가 더 어려워지는 장점이 있습니다. 또한 앱에서 실행 불가능한 위치에 파일을 저장할 수 있습니다. 파일 스트림을 응답에 전달하기 만하면되기 때문입니다. 모든 요청에 ​​패키지 ID가 있으므로 모든 요청에 ​​해당 파일을 가져올 권한이 있는지 확인할 수도 있습니다. 마지막으로, 사용자에게 영향을주지 않고 나중에 파일 구조를 변경할 수 있습니다. 서버의 안전한 지점에 퍼팅했지만 클라우드 위치로 이동해야하는 경우 파일 스트림이 새로운 위치에 있지만 경로는 알 수 있도록 처리기를 업데이트 할 수 있습니다 (및 사용자의 책갈피!)를 변경할 필요가 없습니다.

관련 문제