stream caas file in chunks
This commit is contained in:
parent
b247971b7e
commit
9869e98346
16
app.rb
16
app.rb
@ -20,6 +20,7 @@ $LOAD_PATH.unshift File.dirname(__FILE__) + "/lib"
|
|||||||
|
|
||||||
require "config"
|
require "config"
|
||||||
|
|
||||||
|
CHUNK_SIZE = 1024**2
|
||||||
SESSION_SECRET_HEX_LENGTH = 64
|
SESSION_SECRET_HEX_LENGTH = 64
|
||||||
JWT_SECRET_HEX_LENGTH = 64
|
JWT_SECRET_HEX_LENGTH = 64
|
||||||
|
|
||||||
@ -506,7 +507,7 @@ get "/kitty" do
|
|||||||
# fail-safe url
|
# fail-safe url
|
||||||
url = "https://i.imgur.com/epzPw7L.jpeg"
|
url = "https://i.imgur.com/epzPw7L.jpeg"
|
||||||
end
|
end
|
||||||
path = Tempfile.open binmode: true do |f|
|
tmp_file = Tempfile.open binmode: true do |f|
|
||||||
# f.chmod 0o644
|
# f.chmod 0o644
|
||||||
response = HTTParty.get(url, stream_body: true) do |fragment|
|
response = HTTParty.get(url, stream_body: true) do |fragment|
|
||||||
if [301, 302].include? fragment.code
|
if [301, 302].include? fragment.code
|
||||||
@ -519,8 +520,15 @@ get "/kitty" do
|
|||||||
end
|
end
|
||||||
|
|
||||||
content_type response.headers["content-type"]
|
content_type response.headers["content-type"]
|
||||||
f.path
|
f
|
||||||
|
end
|
||||||
|
|
||||||
|
tmp_file.open do |f|
|
||||||
|
stream do |out|
|
||||||
|
out << f.read
|
||||||
|
until f.eof?
|
||||||
|
out << f.read(CHUNK_SIZE)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
send_file path
|
|
||||||
File.delete path
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user