仅下载文件的一部分

r004

我正在尝试查找是否可以通过axelaria2或任何其他可用工具下载文件(任何文件)的一部分

例如,有一个电影文件(因为在A / V文件中执行这种操作很有意义)。我怎样才能从文件的第一个仅下载最后的50MB或第三个60Mb?

这些文件大部分位于HTTP服务器上;但可能在FTP服务器上。如果可以通过其他协议下载它们,则也可以选择。

史蒂文·D

是否可以下载文件的一部分取决于用于传输内容的协议。

如果文件可通过HTTP / 1.1获得,则任何正确支持Range标头的服务器(请参阅RFC 2616的14.35节)都应允许您下载文件的某些部分。

考虑以下文件:

$ cat testfile.txt
12345

如果我通过支持Range标头的网络服务器nginx来完成此任务,则可以下载其中的部分内容(为了便于阅读,插入了换行符):

$ curl --header "Range: bytes=2-3" https://localhost/testfile.txt -k
34
$ curl --header "Range: bytes=0-1" https://localhost/testfile.txt -k
12 
$ curl --header "Range: bytes=4-" https://localhost/testfile.txt -k
5

它与curl,wget和其他HTTP客户端用于“恢复”中断的传输的功能相同。

FTP协议通过RESTART(REST)命令提供给定偏移量的文件恢复传输(请参阅RFC 959的4.1.3节)。使用与FTP相同的上述testfile.txt:

$ touch testfile.txt
$ ftp localhost
Connected to localhost.
220 (vsFTPd 2.2.2)
Name (localhost:steve): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> rest 3
restarting at 3. execute get, put or append to initiate transfer
ftp> get testfile.txt
local: testfile.txt remote: testfile.txt
200 PORT command successful. Consider using PASV.
350 Restart position accepted (3).
150 Opening BINARY mode data connection for testfile.txt (6 bytes).
226 Transfer complete.
3 bytes received in 0.00 secs (19.1 kB/s)
ftp> 221 Goodbye.
$ cat testfile.txt
45

我不熟悉许多FTP客户端,所以我不知道是否有这样做,但是很可能可以通过使用REST命令读取任何字节的子集,然后在获得所需的字节数后就停止。

似乎aria2能够使用该-c标志恢复HTTP和FTP传输这可能使用上面的功能,因为仅HTTP和FTP支持。但是,它似乎并不本地支持仅下载文件的末尾或中间部分。--continue通过在磁盘上创建虚拟文件,有可能利用该标志。如果此文件有N个字节,则aria可能会从文件的N + 1个字节开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章