mirror of
https://github.com/tahoe-lafs/tahoe-lafs.git
synced 2025-01-09 06:22:38 +00:00
web/filenode: add Accept-Ranges and ETag (for immutable files) headers to GET responses
This commit is contained in:
parent
b1ca238176
commit
6e1db34817
@ -10,7 +10,7 @@ from allmydata.interfaces import ExistingChildError
|
|||||||
from allmydata.monitor import Monitor
|
from allmydata.monitor import Monitor
|
||||||
from allmydata.immutable.upload import FileHandle
|
from allmydata.immutable.upload import FileHandle
|
||||||
from allmydata.immutable.filenode import LiteralFileNode
|
from allmydata.immutable.filenode import LiteralFileNode
|
||||||
from allmydata.util import log
|
from allmydata.util import log, base32
|
||||||
|
|
||||||
from allmydata.web.common import text_plain, WebError, IClient, RenderMixin, \
|
from allmydata.web.common import text_plain, WebError, IClient, RenderMixin, \
|
||||||
boolean_of_arg, get_arg, should_create_intermediate_directories
|
boolean_of_arg, get_arg, should_create_intermediate_directories
|
||||||
@ -353,6 +353,13 @@ class FileDownloader(rend.Page):
|
|||||||
assert isinstance(filesize, (int,long)), filesize
|
assert isinstance(filesize, (int,long)), filesize
|
||||||
offset, size = 0, None
|
offset, size = 0, None
|
||||||
contentsize = filesize
|
contentsize = filesize
|
||||||
|
req.setHeader("accept-ranges", "bytes")
|
||||||
|
if not self.filenode.is_mutable():
|
||||||
|
# TODO: look more closely at Request.setETag and how it interacts
|
||||||
|
# with a conditional "if-etag-equals" request, I think this may
|
||||||
|
# need to occur after the setResponseCode below
|
||||||
|
req.setETag(base32.b2a(self.filenode.get_storage_index()))
|
||||||
|
# TODO: for mutable files, use the roothash
|
||||||
rangeheader = req.getHeader('range')
|
rangeheader = req.getHeader('range')
|
||||||
if rangeheader:
|
if rangeheader:
|
||||||
# adapted from nevow.static.File
|
# adapted from nevow.static.File
|
||||||
|
Loading…
Reference in New Issue
Block a user