2016-01-21 104 views
0

我是编码方面的noob,最近才开始使用cURL命令。绕过命令行cURL 2GB下载限制

我工作在Windows中,并从http://curl.haxx.se/download.html

通常我使用它的范围的下载下载卷曲的文件。它适用于2GB以下的所有下载。但是,当我试图给出高于2GB的任何范围时,它会给出错误,因为“416请求的范围不可满足”。我预计这个错误即将达到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"` 

%合计%收稿%Xferd平均速度时间时间时间电流 DLOAD上传一共花左速度

100 212 100 212 0 0 0 82 0:00 :02〇点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作为下载程序,但这个限制正在杀死我。 Plz的帮助。

+0

从什么样子,卷曲的错误是不相关,但nginx的你要在服务器上的相关从中下载文件。 – fardjad

+0

这是服务器端消息 – Marged

回答

2

这是一个服务器端错误,在现代操作系统上,curl对于最大64位的文件大小没有问题。

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

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

最后:这里你的榜样命令行仍低于2GB的两个值...

+0

是否已将Windows 2GB +文件支持合并到main中? (re:https://github.com/bagder/curl/pull/451和并行https://github.com/libssh2/libssh2/pull/31)。 – rivy

+0

Windows上支持2GB ** SFTP **,它有其特殊的限制。这不是一个通用的2GB问题。这是一个与libssh2 API有关的问题。不,那还没有被修正,因为libssh2还没有发布其改进的API。 –