linux - 有谁知道如何使用CURL下载 "fake"?

标签 linux bash curl

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

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

有没有办法“伪造”下载?我的意思是,有没有一种方法可以让我在不实际下载文件的情况下确认 URL 是否有效,因为有 1000 个 URL,如果我要全部下载它们,这将花费大量时间来浏览,并且会占用硬盘空间?

提前致谢:)

<小时/>

更新

TFS 是 Team Foundation Server,

这是我当前的测试代码;

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

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

最佳答案

发出 HTTP HEAD 请求并仅下载 header ,这样您就可以检查它是否返回“HTTP 404 Not Found”或其他内容,您可以使用 -I 参数通过curl 来执行此操作,但对于大型列表,您不应该使用 cli 程序curl,您应该使用 libcurl curl_multi 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。使用解释语言的缺点之一。不过,此时您的瓶颈可能是带宽,而不是 CPU)

关于linux - 有谁知道如何使用CURL下载 "fake"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59453842/

相关文章:

linux - 无法使用 bash 设置环境变量

linux - 检查是否设置了传递给 bash 脚本的第一个参数?

arrays - BASH:在部分数组输出周围加双引号?

c++ - 终止所有线程或当前正在运行的线程,使进程在 C++ 中保持事件状态

linux - 从文件的多行中删除具有重复字符串的行

linux - 仅在尚未发送时通知发送

linux - 在 linux bash 中反转文件行顺序但对于 block 每 3 行

PHP - Curl 正在添加 HTTP ://to my HTTPS URL

json - 抑制 httr POST 返回的 302 错误

windows-7 - Windows 7 OpenLDAP Curl DLL 依赖 hell