Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

DSpace 7 supports the HTTP Range header on the bitstream content endpoint. We can use this to just get parts of a bitstream, pause and resume downloads using a download manager or for other features such as basic HTML 5 video streaming. DSpace advertises this support with the "Accept-Ranges: bytes" response header.

Usage

The Range header indicates which part of a bitstream the server should return, currently we support the following formats:

Open-range:

Range: bytes=<range-start>-

Closed-range:

Range: bytes=<range-start>-<range-end>

Multiple-ranges:

Range: bytes=<range-start>-<range-end>, <range-start>-<range-end>, <range-start>-<range-end>


For more information: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Range

Note that DSpace only supports bytes as the unit.

ETAG

For the ETAG response header is populated with the checksum of a bitstream. This should allow users to check if a bitstream has been updated using a HTTP Head request.

HTTP-headers:

The following other HTTP-headers are supported

HeaderExplanation
If-None-MatchIf this is equal to the checksum of the requested bitstream, a 304 will be returned.
If-Modified-SinceThe bitstream will only be returned if it has been modified since the given date
If-MatchOnly returns the bitstream if If-Match contains the checksum or "*"
If-Not-Modified-SinceThe bitstream will only be returned if it has NOT been modified since the given date



  • No labels

1 Comment

  1. Tom Desair: Could we (eventually) move this, and the new REST Authentication page over to our REST Contract?  I think these should be a part of that contract.

    https://github.com/DSpace/Rest7Contract