Browse Source

enable range requests on files via `?range=m-n` query string.

Shane Kilkelly 10 years ago
parent
commit
4f533147b1

+ 5 - 0
services/web/app/coffee/Features/FileStore/FileStoreHandler.coffee

@@ -42,6 +42,11 @@ module.exports = FileStoreHandler =
 			method : "get"
 			method : "get"
 			uri: "#{@_buildUrl(project_id, file_id)}#{queryString}"
 			uri: "#{@_buildUrl(project_id, file_id)}#{queryString}"
 			timeout:fiveMinsInMs
 			timeout:fiveMinsInMs
+			headers: {}
+		if query? and query['range']?
+			rangeText = query['range']
+			if rangeText && rangeText.match? && rangeText.match(/\d+-\d+/)
+				opts.headers['range'] = "bytes=#{query['range']}"
 		readStream = request(opts)
 		readStream = request(opts)
 		readStream.on "error", (err) ->
 		readStream.on "error", (err) ->
 			logger.err {err, project_id, file_id, query}, "error in file stream"
 			logger.err {err, project_id, file_id, query}, "error in file stream"