diff options
author | Erik Johnston <erik@matrix.org> | 2017-10-12 17:57:31 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-10-12 17:57:31 +0100 |
commit | 4ae85ae12190015595f979f1a302ee608de6fd65 (patch) | |
tree | f3e3e4c21dd578f55c9b8a0043db1f5dff652115 /synapse/rest | |
parent | getvalue closes buffer (diff) | |
download | synapse-4ae85ae12190015595f979f1a302ee608de6fd65.tar.xz |
Don't close prematurely..
Diffstat (limited to 'synapse/rest')
-rw-r--r-- | synapse/rest/media/v1/media_repository.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/synapse/rest/media/v1/media_repository.py b/synapse/rest/media/v1/media_repository.py index ff2ddd2f18..80b14a6739 100644 --- a/synapse/rest/media/v1/media_repository.py +++ b/synapse/rest/media/v1/media_repository.py @@ -97,12 +97,13 @@ class MediaRepository(object): os.makedirs(dirname) @staticmethod - def _write_file_synchronously(source, fname): + def _write_file_synchronously(source, fname, close_source=False): source.seek(0) # Ensure we read from the start of the file with open(fname, "wb") as f: shutil.copyfileobj(source, f) - source.close() + if close_source: + source.close() @defer.inlineCallbacks def write_to_file(self, source, path): @@ -148,10 +149,12 @@ class MediaRepository(object): yield preserve_context_over_fn( threads.deferToThread, self._write_file_synchronously, source, backup_fname, + close_source=True, ) else: preserve_fn(threads.deferToThread)( self._write_file_synchronously, source, backup_fname, + close_source=True, ) else: source.close() |