我想使用wget
(从php脚本中)下载图像文件,但不想下载超过一定大小的文件。
我可以限制文件大小wget
吗?如果没有,还有什么更好的方法?
我想使用wget
(从php脚本中)下载图像文件,但不想下载超过一定大小的文件。
我可以限制文件大小wget
吗?如果没有,还有什么更好的方法?
Answers:
如果要编写下载脚本,则应考虑使用curl
代替。Wget可以解析输出并以递归方式获取整个站点,但是curl可以提供更多与特定文件的实际下载相关的选项。这是手册页中的相关选项:
--max-filesize
指定要下载的文件的最大大小(以字节为单位)。如果请求的文件大于此值,则传输将不会开始,并且curl将以退出代码63返回。
注意:在下载之前,文件大小并不总是已知的,并且对于此类文件,即使该文件无效转移最终大于此给定限制。
有关仅适用于某些文件的注意事项值得考虑。客户端依赖服务器来报告开始下载文件之前文件的大小。大多数(但不是全部)服务器报告了这一情况。
似乎没有任何合理的方法来使用wget设置最大文件大小。
ulimit
(见bash(1)
,setrlimit(2)
)也将与工作wget(1)
,虽然这是一个有点笨拙。
-Q
--quota
当给出多个URL(递归或输入列表)时,wget有一个选项可以限制最大下载量。
https://www.gnu.org/software/wget/manual/html_node/Download-Options.html
$n
字节的文件:(ulimit -f $(($n/512)); curl --max-filesize $n …)
。curl
如果文件大小超过$n/512
512字节块,将以错误中止。