我注意到在使用 Discourse 时,大于 5MB 的视频链接无法生成 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 站点上——包括官方论坛和我管理的另一个 Discourse 站点——大于 5MB 的视频 Onebox 都可以正常工作。
我可以确认在我的另一个 Discourse 站点上,MAX_REQUEST_SIZE_BYTES 没有任何修改。
有人能解释一下为什么会发生这种情况,以及我该如何修复它吗?