我使用Typhoeus作为例子,但代码可以在任何Ruby中。假设有10000个网址看起来像这样:根据Ruby的当前大小,可以在Ruby中放置http请求吗?
http://example.com/somerandomstringwithoutextension
- 的URL可以是任何内容类型 - 视频,HTML,图像, 什么。
- 我只需要加载html文件,并忽略其他 速度和内存效率。
如果我在5 GB的视频上运行以下代码,它会使应用程序崩溃,因为它会尝试将整个视频加载到内存中。
res = Typhoeus::Request.new(url, timeout: 15, followlocation: true).run
如果我在每个单一的URL HEAD请求,首先要确定它的内容类型和内容的大小,将与内存问题帮助,但它会采取几乎两倍的时间(0.7秒,HEAD请求然后0.7为实际请求)
有没有什么办法可以在Ruby中发出http请求,看它目前传输的内容大小,如果达到某个限制,就放弃它?例如。如果请求大于5 MB,请求放弃请求?或者,根据它的内容类型放弃它。
我一直在挖掘这方面的信息一个小时,这是迄今为止最好和最彻底的答案。谢谢。 'HEAD',然后是'GET'。 – MothOnMars