openstreetmap-website/config/initializers/streaming.rb
2016-01-19 09:51:24 +00:00

23 lines
727 B
Ruby

# Hack ActionController::DataStreaming to allow streaming from a file handle
module ActionController
module DataStreaming
alias old_send_file send_file
def send_file(file, options = {})
if file.is_a?(File) || file.is_a?(Tempfile)
headers["Content-Length"] ||= file.size.to_s
options[:filename] ||= File.basename(file.path) unless options[:url_based_filename]
send_file_headers! options
self.status = options[:status] || 200
self.content_type = options[:content_type] if options.key?(:content_type)
self.response_body = file
else
headers["Content-Length"] ||= File.size(file).to_s
old_send_file(file, options)
end
end
end
end