我正在尝试编写一个脚本来检查给定的 URL 是否存在并返回自身(如果存在)。文件类型为 .jpg 和 .mov。
我目前正在使用 open-uri std 库,但我很确定我应该使用其他东西。
begin
if (open(image_url).read)
puts image_url
end
if (open(video_url).read)
puts video_url
end
rescue
end
正如您所看到的,这是非常低效的,因为它读取整个文件。还有其他解决方案吗?
最佳答案
您可以使用标准库“net/http”等 HTTP 库或 cURB 绑定(bind)等其他库,但本质上您只想发出 HTTP HEAD 请求,该请求仅提供 header 信息,而不是实际的响应正文。如果 HEAD 请求成功,您将收到 HTTP 200,如果它不存在,您将收到 HTTP 404(您可能会收到其他响应,例如内部错误 (HTTP 500) 以及您决定如何处理这些响应,这取决于您)。
长话短说,使用 HTTP HEAD。
关于Ruby:检查远程服务器上是否存在文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1166058/