希望很快,我有一个任务来查看URL,在我做一些内务处理时,在我们的TFS服务器上是否仍然有效。
当前,我有一个需要检查的URL列表,我正在使用CURL。问题是我要检查1000个URL,并且每个人都会自动下载文件。
是否可以“伪造”下载内容?我的意思是说,有没有一种方法可以确认URL是否有效而无需实际下载文件,因为有1000个URL,如果我要这样做,则将花费大量时间以及占用HDD空间。全部下载吗?
先谢谢您了:)
更新
TFS是Team Foundation Server,
这是我当前的测试代码;
curl -k -u $userPass $url --output test.zip
此代码^^^成功下载了我要下载的文件,但是一旦我添加“ -v”以获取标题,它就会破坏下载并给我405响应代码。
答案 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)