Improve handling of URLs
Docker / build (push) Waiting to run Details

This commit is contained in:
Chris W 2024-01-15 14:52:38 -07:00
parent 96021984e6
commit 7ab33da7fc
2 changed files with 13 additions and 8 deletions

View File

@ -136,6 +136,7 @@ module Paste69
if form.has_key?("file")
filename, body = form["file"]
end
if form.has_key?("ext")
_, ext = form["ext"]
@ -144,6 +145,7 @@ module Paste69
filename = "#{filename}.#{ext}"
end
if body
@utils.store_file(
body,
content_type,
@ -157,6 +159,8 @@ module Paste69
_, body = form["url"]
@utils.store_url(
String.new(body),
filename,
expires ? String.new(expires).to_i64 : nil,
remote_addr,
user_agent,
!!secret,

View File

@ -81,7 +81,7 @@ module Paste69
res
end
def store_url(url : String, addr : String? = nil, ua : String? = nil, secret : Bool = false)
def store_url(url : String, filename : String? = nil, requested_expiration : Int64? = nil, addr : String? = nil, ua : String? = nil, secret : Bool = false)
if is_fhost_url?(url)
raise ATH::Exceptions::BadRequest.new("Invalid URL")
end
@ -102,7 +102,8 @@ module Paste69
if res.headers.has_key?("Content-Length")
l = res.headers["Content-Length"].to_i64
if l <= @config.get("max_content_length").as_i64
return store_file(res.body.to_slice, res.headers["Content-Type"], nil, nil, addr, ua, secret)
filename ||= File.basename(url)
return store_file(res.body.to_slice, res.headers["Content-Type"], filename, nil, addr, ua, secret)
else
raise Exceptions::ContentTooLarge.new("Content-Length was too large")
end