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