加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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请求发回的标头.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读