Я заметил, что при использовании Discourse видеоссылки размером более 5 МБ не создают Onebox.
Просматривая логи, я обнаружил, что ошибка возникает здесь:
/var/www/discourse/lib/final_destination.rb:249:in `block in resolve'
Я проверил файл final_destination.rb и нашел следующий код:
MAX_REQUEST_SIZE_BYTES = 5_242_880 # 1024 * 1024 * 5
request_start_time = Time.now
response_body = +""
request_validator =
lambda do |chunk, _remaining_bytes, _total_bytes|
response_body << chunk
if response_body.bytesize > MAX_REQUEST_SIZE_BYTES
raise Excon::Errors::ExpectationFailed.new("response size too big: #{@uri}")
end
if Time.now - request_start_time > MAX_REQUEST_TIME_SECONDS
raise Excon::Errors::ExpectationFailed.new("connect timeout reached: #{@uri}")
end
end
Однако на других сайтах Discourse — как на официальном форуме, так и на другом сайте, который я администрирую, — Onebox корректно работает для видео размером более 5 МБ.
Я могу подтвердить, что на моём другом сайте Discourse константа MAX_REQUEST_SIZE_BYTES не изменялась ни в каком виде.
Не могли бы вы объяснить, почему это происходит, и как это исправить?