diff options
author | Erik Johnston <erik@matrix.org> | 2021-02-03 16:44:16 +0000 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2021-02-04 17:01:30 +0000 |
commit | 7e8083eb48fc22e1dde8b3a3d171f16acdfd6a25 (patch) | |
tree | 7859be162185846ebe98e4bb82b8bb951c671101 /synapse/rest/media/v1/upload_resource.py | |
parent | Clarify documentation about escaping URLs in templates. (#9310) (diff) | |
download | synapse-7e8083eb48fc22e1dde8b3a3d171f16acdfd6a25.tar.xz |
Add check_media_file_for_spam spam checker hook
Diffstat (limited to 'synapse/rest/media/v1/upload_resource.py')
-rw-r--r-- | synapse/rest/media/v1/upload_resource.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/synapse/rest/media/v1/upload_resource.py b/synapse/rest/media/v1/upload_resource.py index 6da76ae994..1136277794 100644 --- a/synapse/rest/media/v1/upload_resource.py +++ b/synapse/rest/media/v1/upload_resource.py @@ -22,6 +22,7 @@ from twisted.web.http import Request from synapse.api.errors import Codes, SynapseError from synapse.http.server import DirectServeJsonResource, respond_with_json from synapse.http.servlet import parse_string +from synapse.rest.media.v1.media_storage import SpamMediaException if TYPE_CHECKING: from synapse.app.homeserver import HomeServer @@ -86,9 +87,14 @@ class UploadResource(DirectServeJsonResource): # disposition = headers.getRawHeaders(b"Content-Disposition")[0] # TODO(markjh): parse content-dispostion - content_uri = await self.media_repo.create_content( - media_type, upload_name, request.content, content_length, requester.user - ) + try: + content_uri = await self.media_repo.create_content( + media_type, upload_name, request.content, content_length, requester.user + ) + except SpamMediaException: + # For uploading of media we want to respond with a 400, instead of + # the default 404, as that would just be confusing. + raise SynapseError(400, "Bad content") logger.info("Uploaded content with URI %r", content_uri) |