ruby-on-rails – 如何限制Net :: HTTP请求的大小?
发布时间:2020-12-17 03:50:59 所属栏目:百科 来源:网络整理
导读:我正在创建一个API服务,允许人们向API调用提供图像的URL,然后服务下载要处理的图像. 我如何确保有人不会给我一个像5MB图像的URL?有没有办法限制请求? 这就是我到目前为止所掌握的一切. req = Net::HTTP::Get.new(url.path) res = Net::HTTP.start(url.host
我正在创建一个API服务,允许人们向API调用提供图像的URL,然后服务下载要处理的图像.
我如何确保有人不会给我一个像5MB图像的URL?有没有办法限制请求? 这就是我到目前为止所掌握的一切. req = Net::HTTP::Get.new(url.path) res = Net::HTTP.start(url.host,url.port) { |http| http.request(req) } 谢谢, 解决方法
首先尝试运行:
Net::HTTP.start(url.host,url.port) { |http| response = http.request_head(url.path) raise "File too big." if response['content-length'].to_i > 5*1024*1024 } 您仍然有竞争条件(有人可以在您执行HEAD请求后换出文件),但在简单的情况下,这会向服务器询问它将从GET请求发回的标头. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |