mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
helpers: Support building without_zlib (#667)
This commit is contained in:
parent
cb9adcd188
commit
13fd4f8b2f
1 changed files with 31 additions and 26 deletions
|
@ -1,4 +1,4 @@
|
||||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 && !flag?(:without_zlib) %}
|
||||||
require "compress/deflate"
|
require "compress/deflate"
|
||||||
require "compress/gzip"
|
require "compress/gzip"
|
||||||
{% end %}
|
{% end %}
|
||||||
|
@ -141,33 +141,38 @@ def send_file(env : HTTP::Server::Context, path : String, mime_type : String? =
|
||||||
next multipart(file, env)
|
next multipart(file, env)
|
||||||
end
|
end
|
||||||
|
|
||||||
condition = config.is_a?(Hash) && config["gzip"]? == true && filesize > minsize && Kemal::Utils.zip_types(file_path)
|
{% if flag?(:without_zlib) %}
|
||||||
if condition && request_headers.includes_word?("Accept-Encoding", "gzip")
|
|
||||||
env.response.headers["Content-Encoding"] = "gzip"
|
|
||||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
|
||||||
Compress::Gzip::Writer.open(env.response) do |deflate|
|
|
||||||
IO.copy(file, deflate)
|
|
||||||
end
|
|
||||||
{% else %}
|
|
||||||
Gzip::Writer.open(env.response) do |deflate|
|
|
||||||
IO.copy(file, deflate)
|
|
||||||
end
|
|
||||||
{% end %}
|
|
||||||
elsif condition && request_headers.includes_word?("Accept-Encoding", "deflate")
|
|
||||||
env.response.headers["Content-Encoding"] = "deflate"
|
|
||||||
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
|
||||||
Compress::Deflate::Writer.open(env.response) do |deflate|
|
|
||||||
IO.copy(file, deflate)
|
|
||||||
end
|
|
||||||
{% else %}
|
|
||||||
Flate::Writer.open(env.response) do |deflate|
|
|
||||||
IO.copy(file, deflate)
|
|
||||||
end
|
|
||||||
{% end %}
|
|
||||||
else
|
|
||||||
env.response.content_length = filesize
|
env.response.content_length = filesize
|
||||||
IO.copy(file, env.response)
|
IO.copy(file, env.response)
|
||||||
end
|
{% else %}
|
||||||
|
condition = config.is_a?(Hash) && config["gzip"]? == true && filesize > minsize && Kemal::Utils.zip_types(file_path)
|
||||||
|
if condition && request_headers.includes_word?("Accept-Encoding", "gzip")
|
||||||
|
env.response.headers["Content-Encoding"] = "gzip"
|
||||||
|
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||||
|
Compress::Gzip::Writer.open(env.response) do |deflate|
|
||||||
|
IO.copy(file, deflate)
|
||||||
|
end
|
||||||
|
{% else %}
|
||||||
|
Gzip::Writer.open(env.response) do |deflate|
|
||||||
|
IO.copy(file, deflate)
|
||||||
|
end
|
||||||
|
{% end %}
|
||||||
|
elsif condition && request_headers.includes_word?("Accept-Encoding", "deflate")
|
||||||
|
env.response.headers["Content-Encoding"] = "deflate"
|
||||||
|
{% if compare_versions(Crystal::VERSION, "0.35.0-0") >= 0 %}
|
||||||
|
Compress::Deflate::Writer.open(env.response) do |deflate|
|
||||||
|
IO.copy(file, deflate)
|
||||||
|
end
|
||||||
|
{% else %}
|
||||||
|
Flate::Writer.open(env.response) do |deflate|
|
||||||
|
IO.copy(file, deflate)
|
||||||
|
end
|
||||||
|
{% end %}
|
||||||
|
else
|
||||||
|
env.response.content_length = filesize
|
||||||
|
IO.copy(file, env.response)
|
||||||
|
end
|
||||||
|
{% end %}
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue