mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Allow headers in built-in static file server
This commit is contained in:
parent
2cfe789587
commit
607aaeffe3
4 changed files with 41 additions and 0 deletions
|
@ -21,6 +21,7 @@ module Kemal
|
|||
always_rescue, serve_static : (Bool | Hash(String, Bool)), server, extra_options,
|
||||
shutdown_message
|
||||
getter custom_handler_position
|
||||
property static_headers : (HTTP::Server::Response, String, File::Stat -> Void)?
|
||||
|
||||
def initialize
|
||||
@host_binding = "0.0.0.0"
|
||||
|
|
|
@ -102,6 +102,10 @@ def send_file(env, path : String, mime_type : String? = nil)
|
|||
minsize = 860 # http://webmasters.stackexchange.com/questions/31750/what-is-recommended-minimum-object-size-for-gzip-performance-benefits ??
|
||||
request_headers = env.request.headers
|
||||
filesize = File.size(file_path)
|
||||
filestat = File.stat(file_path)
|
||||
|
||||
Kemal.config.static_headers.try(&.call(env.response, file_path, filestat))
|
||||
|
||||
File.open(file_path) do |file|
|
||||
if env.request.method == "GET" && env.request.headers.has_key?("Range")
|
||||
next multipart(file, env)
|
||||
|
@ -196,3 +200,7 @@ end
|
|||
def gzip(status : Bool = false)
|
||||
add_handler HTTP::CompressHandler.new if status
|
||||
end
|
||||
|
||||
def static_headers(&headers : HTTP::Server::Response, String, File::Stat -> Void)
|
||||
Kemal.config.static_headers = headers
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue