有人知道如何使用CURL“伪造”下载吗?

时间:2019-12-23 10:38:03

标签: linux bash curl

希望很快,我有一个任务来查看URL,在我做一些内务处理时,在我们的TFS服务器上是否仍然有效。

当前,我有一个需要检查的URL列表,我正在使用CURL。问题是我要检查1000个URL,并且每个人都会自动下载文件。

是否可以“伪造”下载内容?我的意思是说,有没有一种方法可以确认URL是否有效而无需实际下载文件,因为有1000个URL,如果我要这样做,则将花费大量时间以及占用HDD空间。全部下载吗?

先谢谢您了:)


更新

TFS是Team Foundation Server,

这是我当前的测试代码;

curl -k -u $userPass $url --output test.zip

此代码^^^成功下载了我要下载的文件,但是一旦我添加“ -v”以获取标题,它就会破坏下载并给我405响应代码。

1 个答案:

答案 0 :(得分:4)

发出HTTP HEAD请求并仅下载标头,以便您可以检查它是否返回“ HTTP 404 Not Found”或其他内容,可以使用-I参数使用curl进行操作,但是对于大型列表,您可以不应使用cli程序curl,而应使用libcurl curl_multi API,该API可以使用异步连接同时检查数百个甚至数千个url,这将比从cli程序执行的任何操作都要快得多。这段代码使用curl_multi API使用PHP检查大型的URL列表:https://stackoverflow.com/a/54353191/1067003

将代码放入.php脚本中并从php-cli运行它,其速度应比从cli程序curl获得的任何东西都要快得多。

,如果那仍然太慢,您可以使用curl_multi C API在C / C ++中重写它,其运行速度甚至比上述PHP实现还要快(PHP比C实现使用的CPU多得多)使用..使用解释语言的弊端之一。不过,目前的瓶颈可能是带宽,而不是CPU)