具有暂停和恢复功能的FTP客户端

具有暂停和恢复功能的FTP客户端,ftp,Ftp,我需要实现FTP客户端暂停和恢复功能 这个线程提到了如何实现HTTP上传 FTP上传也可以执行类似操作吗? 我假设服务器也需要支持此功能。正确吗? 一些指针会很有用。FTP没有像HTTP在内容范围内那样只传输部分文件的功能。但是如果您想停止上传,只需关闭数据连接,对于resume,您将首先发出SIZE命令来检测上传的文件大小,然后发出REST命令,显示要继续上传的文件位置。由于无法提前通知服务器最终文件大小,您可能应该首先使用临时名称上传到文件,上传完成后,使用RNFR和RNTO将其重命名为最终

我需要实现FTP客户端暂停和恢复功能

这个线程提到了如何实现HTTP上传

FTP上传也可以执行类似操作吗?
我假设服务器也需要支持此功能。正确吗?

一些指针会很有用。

FTP没有像HTTP在
内容范围内那样只传输部分文件的功能。但是如果您想停止上传,只需关闭数据连接,对于resume,您将首先发出
SIZE
命令来检测上传的文件大小,然后发出
REST
命令,显示要继续上传的文件位置。由于无法提前通知服务器最终文件大小,您可能应该首先使用临时名称上传到文件,上传完成后,使用
RNFR
RNTO
将其重命名为最终文件名。

有关这些FTP命令的更多信息,请查看标准,即恢复先前中断的传输:

  • 检查已上载文件部分的大小。您可以使用
    SIZE
    命令,或者(如果您的FTP服务器支持)使用
    MLST
    命令

  • 使用
    APPE
    而不是
    STOR
    启动新上载。将本地源文件流搜索到已上载的偏移量

    要使其正常工作,FTP服务器必须支持
    APPE
    命令(大多数服务器都这样做)


取决于暂停的时间/您所说的“暂停”是什么意思。如果时间很短(秒到分钟),只需暂停对流的写入/读取。如果长(分钟到小时,甚至更多),你必须实现传输恢复。此外,你想用什么语言来实现这个?语言是C++。暂停时间可能超过5分钟。我想这也需要服务器端的支持,对吗?如何实现传输恢复在这种情况下,一些指针可能会有所帮助。对于文件范围的请求,命令有一个(过期)草稿。@Castaglia:有趣。但与我的建议相反,这需要服务器中的明确支持,我不知道哪个服务器实现了此命令。