mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2024-12-19 02:14:18 -05:00
Split out add_file_headers
This commit is contained in:
parent
ce3a726fc0
commit
47ca5eb882
@ -70,6 +70,32 @@ def respond_with_file(request, media_type, file_path,
|
|||||||
logger.debug("Responding with %r", file_path)
|
logger.debug("Responding with %r", file_path)
|
||||||
|
|
||||||
if os.path.isfile(file_path):
|
if os.path.isfile(file_path):
|
||||||
|
if file_size is None:
|
||||||
|
stat = os.stat(file_path)
|
||||||
|
file_size = stat.st_size
|
||||||
|
|
||||||
|
add_file_headers(request, media_type, file_size, upload_name)
|
||||||
|
|
||||||
|
with open(file_path, "rb") as f:
|
||||||
|
yield logcontext.make_deferred_yieldable(
|
||||||
|
FileSender().beginFileTransfer(f, request)
|
||||||
|
)
|
||||||
|
|
||||||
|
finish_request(request)
|
||||||
|
else:
|
||||||
|
respond_404(request)
|
||||||
|
|
||||||
|
|
||||||
|
def add_file_headers(request, media_type, file_size, upload_name):
|
||||||
|
"""Adds the correct response headers in preparation for responding with the
|
||||||
|
media.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
request (twisted.web.http.Request)
|
||||||
|
media_type (str): The media/content type.
|
||||||
|
file_size (int): Size in bytes of the media, if known.
|
||||||
|
upload_name (str): The name of the requested file, if any.
|
||||||
|
"""
|
||||||
request.setHeader(b"Content-Type", media_type.encode("UTF-8"))
|
request.setHeader(b"Content-Type", media_type.encode("UTF-8"))
|
||||||
if upload_name:
|
if upload_name:
|
||||||
if is_ascii(upload_name):
|
if is_ascii(upload_name):
|
||||||
@ -95,19 +121,7 @@ def respond_with_file(request, media_type, file_path,
|
|||||||
request.setHeader(
|
request.setHeader(
|
||||||
b"Cache-Control", b"public,max-age=86400,s-maxage=86400"
|
b"Cache-Control", b"public,max-age=86400,s-maxage=86400"
|
||||||
)
|
)
|
||||||
if file_size is None:
|
|
||||||
stat = os.stat(file_path)
|
|
||||||
file_size = stat.st_size
|
|
||||||
|
|
||||||
request.setHeader(
|
request.setHeader(
|
||||||
b"Content-Length", b"%d" % (file_size,)
|
b"Content-Length", b"%d" % (file_size,)
|
||||||
)
|
)
|
||||||
|
|
||||||
with open(file_path, "rb") as f:
|
|
||||||
yield logcontext.make_deferred_yieldable(
|
|
||||||
FileSender().beginFileTransfer(f, request)
|
|
||||||
)
|
|
||||||
|
|
||||||
finish_request(request)
|
|
||||||
else:
|
|
||||||
respond_404(request)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user