【问题标题】:Does anyone know how to "fake" download using CURL? [closed]有谁知道如何使用 CURL “伪造”下载? [关闭]
【发布时间】:2019-12-23 10:38:03
【问题描述】:

希望尽快完成,我有一个任务是查看 URL 在我们的 TFS 服务器上是否仍然有效,因为我正在做一些家务。

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

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

提前谢谢:)


更新

TFS 是 Team Foundation Server,

所以这是我当前的代码作为测试;

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

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

【问题讨论】:

  • 1) 请问什么是 TFS? 2) 你查看curl 的管理是否有"header only" 选项? 3) 您是否尝试过 GNU Parallel 来更快地完成工作? 4) 请问您当前的代码是什么?
  • TFS 是 Team Foundation Server,

标签: linux bash curl


【解决方案1】:

发出 HTTP HEAD 请求并仅下载标头,以便您检查它是否返回“HTTP 404 Not Found”或其他内容,您可以使用 curl 使用 -I 参数执行此操作,但对于大型列表,您应该不使用 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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2013-02-12
    相关资源
    最近更新 更多