ruby 检查Web文件是否存在,但不下载它?

ryoqjall  于 2022-12-18  发布在  Ruby
关注(0)|答案(3)|浏览(107)

有没有可能在不下载文件的情况下检查文件是否存在?
我有一个大文件(~ * 40 mb *),例如:
http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm
这与ruby没有严格的联系,但是如果发送者可以设置内容长度就更好了。

RestClient.get "http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm", 
               headers: {"Content-Length" => 100}
w8rqjzmb

w8rqjzmb1#

请尝试RestClient.head。(请参阅)
HTTP HEAD方法除了服务器不能在响应中发送内容外,与GET方法相同。HEAD用于获取关于所选表示的元数据,而不传输其表示数据,通常是为了测试超文本链接或查找最近的修改。
RFC 9110 HTTP Semantics

cyej8jka

cyej8jka3#

我们可以使用wget:

def file_exists?(full_file_path)
      resp = `wget --spider -v #{full_file_path} && echo 1 || echo 0`
      resp.to_i.zero? ? false : true
  end

相关问题