diff options
author | Erik Johnston <erik@matrix.org> | 2021-02-19 10:46:18 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2021-02-19 10:46:18 +0000 |
commit | 3d2acc930f0a633bf400c96f3e636b5b662a54cb (patch) | |
tree | b1ea0bb16319371cf2fedc199a948bc2bf9bd547 /synapse/rest/media/v1 | |
parent | Newsfile (diff) | |
download | synapse-3d2acc930f0a633bf400c96f3e636b5b662a54cb.tar.xz |
Return a 404 if we don't have the original file
Diffstat (limited to 'synapse/rest/media/v1')
-rw-r--r-- | synapse/rest/media/v1/media_storage.py | 2 | ||||
-rw-r--r-- | synapse/rest/media/v1/thumbnail_resource.py | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/synapse/rest/media/v1/media_storage.py b/synapse/rest/media/v1/media_storage.py index 1057e638be..b1b1c9e6ec 100644 --- a/synapse/rest/media/v1/media_storage.py +++ b/synapse/rest/media/v1/media_storage.py @@ -244,7 +244,7 @@ class MediaStorage: await consumer.wait() return local_path - raise Exception("file could not be found") + raise NotFoundError() def _file_info_to_path(self, file_info: FileInfo) -> str: """Converts file_info into a relative path. diff --git a/synapse/rest/media/v1/thumbnail_resource.py b/synapse/rest/media/v1/thumbnail_resource.py index c345ec6498..3ab90e9f9b 100644 --- a/synapse/rest/media/v1/thumbnail_resource.py +++ b/synapse/rest/media/v1/thumbnail_resource.py @@ -340,6 +340,13 @@ class ThumbnailResource(DirectServeJsonResource): # width/height/method so we can just call the "generate exact" # methods. + # First let's check that we do actually have the original image + # still. This will throw a 404 if we don't. + # TODO: We should refetch the thumbnails for remote media. + await self.media_storage.ensure_media_is_in_local_cache( + FileInfo(server_name, file_id, url_cache=url_cache) + ) + if server_name: await self.media_repo.generate_remote_exact_thumbnail( server_name, |