diff --git a/synapse/media/thumbnailer.py b/synapse/media/thumbnailer.py
index 042851021c..ee1118a53a 100644
--- a/synapse/media/thumbnailer.py
+++ b/synapse/media/thumbnailer.py
@@ -348,7 +348,12 @@ class ThumbnailProvider:
if responder:
if for_federation:
await respond_with_multipart_responder(
- self.hs.get_clock(), request, responder, media_info
+ self.hs.get_clock(),
+ request,
+ responder,
+ info.type,
+ info.length,
+ None,
)
return
else:
@@ -360,7 +365,7 @@ class ThumbnailProvider:
logger.debug("We don't have a thumbnail of that size. Generating")
# Okay, so we generate one.
- file_path = await self.media_repo.generate_local_exact_thumbnail(
+ thumbnail_result = await self.media_repo.generate_local_exact_thumbnail(
media_id,
desired_width,
desired_height,
@@ -369,13 +374,18 @@ class ThumbnailProvider:
url_cache=bool(media_info.url_cache),
)
- if file_path:
+ if thumbnail_result:
+ file_path, file_info = thumbnail_result
+ assert file_info.thumbnail is not None
+
if for_federation:
await respond_with_multipart_responder(
self.hs.get_clock(),
request,
FileResponder(self.hs, open(file_path, "rb")),
- media_info,
+ file_info.thumbnail.type,
+ file_info.thumbnail.length,
+ None,
)
else:
await respond_with_file(self.hs, request, desired_type, file_path)
@@ -580,7 +590,12 @@ class ThumbnailProvider:
if for_federation:
assert media_info is not None
await respond_with_multipart_responder(
- self.hs.get_clock(), request, responder, media_info
+ self.hs.get_clock(),
+ request,
+ responder,
+ file_info.thumbnail.type,
+ file_info.thumbnail.length,
+ None,
)
return
else:
@@ -634,7 +649,12 @@ class ThumbnailProvider:
if for_federation:
assert media_info is not None
await respond_with_multipart_responder(
- self.hs.get_clock(), request, responder, media_info
+ self.hs.get_clock(),
+ request,
+ responder,
+ file_info.thumbnail.type,
+ file_info.thumbnail.length,
+ None,
)
else:
await respond_with_responder(
|