Prior to this PR, remote downloads which did not provide a `content-length` were decremented from the remote download ratelimiter at the max allowable size, leading to excessive ratelimiting - see https://github.com/element-hq/synapse/issues/17394. This PR adds a linearizer to limit concurrent remote downloads to 6 per IP address, and decrements remote downloads without a `content-length` from the ratelimiter *after* the download is complete and the response length is known. Also adds logic to ensure that responses with a known length respect the `max_download_size`. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| test_base.py | ||
| test_filepath.py | ||
| test_html_preview.py | ||
| test_media_retention.py | ||
| test_media_storage.py | ||
| test_oembed.py | ||
| test_url_previewer.py | ||