This commit makes the following changes:
1. If there are syntactic errors in the Range header, it is ignored and
the full content is returned. This conforms to the spec.
2. In case of multiple ranges in the header, the full content is returned.
This behavior differs from the spec which says that a multipart response
should be returned.
PLAT-104
Currently, users can only download ContentStore files from first byte to
last byte.
With this change, when a request to the ContentStore includes the HTTP
"Range" parameter, it is parsed and StaticContentStream will stream the
requested bytes.
This change makes possible to stream video files (.mp4 especially) from
the ContentStore. Users can now seek a specific time in the video
without loading all the file.
This is useful for courses with a limited number of students that
doesn't require a dedicated video server.
This commit updates common/djangoapps.
These keys are now objects with a limited interface, and the particular
internal representation is managed by the data storage layer (the
modulestore).
For the LMS, there should be no outward-facing changes to the system.
The keys are, for now, a change to internal representation only. For
Studio, the new serialized form of the keys is used in urls, to allow
for further migration in the future.
Co-Author: Andy Armstrong <andya@edx.org>
Co-Author: Christina Roberts <christina@edx.org>
Co-Author: David Baumgold <db@edx.org>
Co-Author: Diana Huang <dkh@edx.org>
Co-Author: Don Mitchell <dmitchell@edx.org>
Co-Author: Julia Hansbrough <julia@edx.org>
Co-Author: Nimisha Asthagiri <nasthagiri@edx.org>
Co-Author: Sarina Canelake <sarina@edx.org>
[LMS-2370]