分段FTP上传

时间:2018-12-19 09:21:47

标签: c++ file-upload ftp vsftpd

如何以分段方式在FTP中上传文件?是否有任何开放源代码工具/库可供我使用? 合并上传文件是否需要服务器端更改?目前,我正在使用vsftpd。

2 个答案:

答案 0 :(得分:1)

在FTP协议中,您可以使用REST command来实现部分传输。

REST命令定义了文件的偏移量,此位置开始传输。然后,您可以根据需要传输任意多个字节。然后您可以从另一个偏移处重新开始传输。

vsftpd服务器支持REST命令。

答案 1 :(得分:0)

首先要考虑的是,分段转移并不被视为良好的公民净行为。 (即您通过在共享链接上设置多次下载来获得系统的收益,获得的收益超过了您合理分配的带宽)。因此,协议定义不支持专门分段的上传。 (或为此下载)继续。

分段下载是一些使用协议的RESUME功能同时传输同一文件的不同部分的工具的攻击。此行为具有“ NON-STANDARD”而不是协议规范的意图

可以分段上传,但是客户端和ftpd服务器(或您使用的任何协议服务器)将需要支持此NO-STANDARD并在实现时皱眉。

同样,在任何标准中都没有特别支持,因为开放标准不鼓励这种不良行为。

但是,您会找到lftp之类的工具,它们支持分段的ftp下载。但目前,我还没有看到使用ftp等常见开放协议的分段上传的任何实现。

我确实找到了一个基于Java(自定义开放源代码)的udp工具来执行此操作,但是,如果您想要Internet上的可靠性,则udp需要tcp后备。 (一些互联网网关删除了udp)