summary refs log tree commit diff
path: root/synapse/media/v1/base_resource.py
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2015-01-07 14:34:00 +0000
committerErik Johnston <erik@matrix.org>2015-01-07 14:34:00 +0000
commitbacaa215eb2e1c11e50bbc3fb0e43e28a463458b (patch)
tree27510a6358b8bc219ccd456622b963a3b394bee3 /synapse/media/v1/base_resource.py
parentMerge branch 'hotfixes-v0.6.0a' (diff)
parentImprove change log (diff)
downloadsynapse-bacaa215eb2e1c11e50bbc3fb0e43e28a463458b.tar.xz
Merge branch 'release-v0.6.1' of github.com:matrix-org/synapse v0.6.1
Diffstat (limited to 'synapse/media/v1/base_resource.py')
-rw-r--r--synapse/media/v1/base_resource.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/synapse/media/v1/base_resource.py b/synapse/media/v1/base_resource.py

index 499be8cca0..688e7376ad 100644 --- a/synapse/media/v1/base_resource.py +++ b/synapse/media/v1/base_resource.py
@@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright 2014 OpenMarket Ltd +# Copyright 2014, 2015 OpenMarket Ltd # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -202,7 +202,8 @@ class BaseMediaResource(Resource): defer.returnValue(media_info) @defer.inlineCallbacks - def _respond_with_file(self, request, media_type, file_path): + def _respond_with_file(self, request, media_type, file_path, + file_size=None): logger.debug("Responding with %r", file_path) if os.path.isfile(file_path): @@ -216,13 +217,20 @@ class BaseMediaResource(Resource): request.setHeader( 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( + b"Content-Length", b"%d" % (file_size,) + ) with open(file_path, "rb") as f: yield FileSender().beginFileTransfer(f, request) request.finish() else: - self._respond_404() + self._respond_404(request) def _get_thumbnail_requirements(self, media_type): if media_type == "image/jpeg":