분명히 사용자가 원하는 콘텐츠 웹 앱에 업로드 할 수 있습니다. 이와 같은 경우에는 "처리자"접근 방식을 사용하는 경향이 있습니다.
첫 번째 단계는 추출 된 자산을 유지하고 싶은 곳을 선택하는 것입니다. 그것 서버에있을 수 있지만 할 수없는 때가 있습니다 (어쩌면 당신은로드 밸런서 뒤에 여러 개의 서버가있을 수 있습니다 그래서 어떤 서버가 요청을 갈 수 있는지, 아니면 그것은 일시적인 저장소 또는 기타) 그래서 어떤 경우에는 외부 클라우드 디스크 또는 BLOB/S3 또는 기타 파일을 저장할 필요가 있습니다. 애플리케이션에 적합한 곳을 선택하십시오.
두 번째 단계는 패키지 내용에 대한 처리기 경로를 정의하는 것입니다. 콘텐츠가 현재 저장되는 방식과 관련이 없습니다. 어쩌면 당신은 /lms/:pkgid/*
과 같은 경로를 원할 것입니다. :pkgid
은 SCORM 패키지의 ID를 나타내고, *
은 나머지 경로를 나타냅니다. 파일이 어디에 저장되어 있는지 알기 때문에 해당 파일에 대한 스트림을 가져 와서 응답으로 전달하여 올바른 MIME 유형을 설정하도록 할 수 있습니다.
이것은 외부에있는 사람이 서버 파일 구조가 무엇인지 알지 못하기 때문에 악의적 인 파일 경로를 조작하기가 더 어려워지는 장점이 있습니다. 또한 앱에서 실행 불가능한 위치에 파일을 저장할 수 있습니다. 파일 스트림을 응답에 전달하기 만하면되기 때문입니다. 모든 요청에 패키지 ID가 있으므로 모든 요청에 해당 파일을 가져올 권한이 있는지 확인할 수도 있습니다. 마지막으로, 사용자에게 영향을주지 않고 나중에 파일 구조를 변경할 수 있습니다. 서버의 안전한 지점에 퍼팅했지만 클라우드 위치로 이동해야하는 경우 파일 스트림이 새로운 위치에 있지만 경로는 알 수 있도록 처리기를 업데이트 할 수 있습니다 (및 사용자의 책갈피!)를 변경할 필요가 없습니다.
답변 해 주셔서 감사합니다. SCORM 내용을 추적하기 위해 JS API를 노출해야한다는 사실을 알고 있으며 기본 호출과 데이터 모델을 구현하는 런타임 API로 거의 완료되었습니다. SCORM 컨텐츠를 애플리케이션에 제공하는 방법에 대해서는 아직 명확하지 않았습니다. –
LMS가 런타임 API를 노출하고 있기 때문에 크로스 도메인을주의해야하며, 다른 mediaserver/콘텐츠 서버에서 서비스를 제공하려고 시도하면 샌드 박스에 넣을 수 있습니다. 이러한 이유로, 나는 일반적으로 당신이 지수를지지한다고 주장 할 것입니다.html 파일을 생성하여 컨텐츠 서버의 자산으로 다시 지정하면 하나 이상의 파일이 LMS와 동일한 도메인에 있습니다 – Mark