【问题标题】:Bypass command-line cURL 2GB download limit绕过命令行 cURL 2GB 下载限制
【发布时间】:2016-04-27 19:33:25
【问题描述】:

我是编码新手,最近才开始使用 cURL 命令。

我在 Windows 中工作,并从 http://curl.haxx.se/download.html 下载了 cURL 文件

通常我用它来进行范围下载。它适用于 2GB 以下的所有下载。但是,当我尝试提供 2GB 以上的任何范围时,它会给出错误“416 Requested Range not satisfiable”。我预计 2GB 限制会出现此错误。

会发生这样的事情:

`curl --range 1048576000--1149239297 -o C:\Temp\newdownload.typ "https://dt76.energycdn.com/torrentdl/dkvOrv1Dkn5PtQncleZsAQ/1453988388/2443016/c92c744e39c125f433ce76fa87b3e043525b350b/Baahubali-The%20Beginning%20%282015%29%20-%201080p%20mHD%20-%20Blu-Ray%20-%20x264%20-%205.1%20AAC%20-%20Esubs%20%5BDDR%5D/Baahubali-The%20Beginning%20%282015%29%20-%201080p%20mHD%20-%20Blu-Ray%20-%20x264%20-%205.1%20AAC%20-%20Esubs%20%5BDDR%5D.mkv"`

% Total % Received % Xferd 平均速度 时间 时间 时间 当前 下载上传总花费的剩余速度

100 212 100 212 0 0 82 0 0:00:02 0:00:02 --:--:-- 82

下载的 212 字节文件包含以下内容:

`<html>
<head><title>416 Requested Range Not Satisfiable</title></head>
<body bgcolor="white">
<center><h1>416 Requested Range Not Satisfiable</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>
`

我喜欢 cURL 作为下载器,但这个限制让我很生气。请帮忙。

【问题讨论】:

  • 从外观上看,该错误与 curl 无关,但与您尝试从中下载文件的服务器上的 nginx 有关。
  • 这是一个服务器端消息

标签: windows batch-file curl download


【解决方案1】:

这是一个服务器端错误,curl 在现代操作系统上对高达 64 位的文件没有任何问题。

但是您的范围看起来不对,范围字符串中有两个破折号(减号),这可能会导致服务器拒绝您(可能它认为第二个数字是负数)。试试--range 1048576000-1149239297

使用 curl 的 -v 选项可以准确查看它在请求中发送的内容以及它获得的服务器响应标头。

最后:您的示例命令行在两个值中仍然低于 2GB...

【讨论】:

  • 是否已将 Windows 2GB+ 文件支持合并到 main 中? (回复:github.com/bagder/curl/pull/451 和平行的github.com/libssh2/libssh2/pull/31)。
  • Windows 支持>2GB SFTP,它有自己的特殊限制。这不是一般的 2GB 问题。这是与 libssh2 API 相关的问题。不,这还没有解决,因为 libssh2 还没有发布带有改进 API 的版本。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
相关资源
最近更新 更多