以块为单位从FTP服务器下载大文件

时间:2017-03-12 11:14:52

标签: vb.net download ftp large-files

我需要从FTP服务器下载大文件。每周上传一次新文件,我需要成为第一个下载文件的人。我做了一个检查,检查文件是否上传,如果文件在那里,它将开始下载。问题是这是一个大文件(3 GB)。我可以在最初的几分钟内下载大约10%的文件,但随着越来越多的人发现文件被上传,平均下载速度下降并下降到大约需要3-4个小时来下载其余文件80%-90%。

时间不是一个大问题,但如果我能更快地完成下载,肯定会很好。问题是我的下载永远不会完成,我认为这是因为连接超时了。

解决方案是延长下载超时,但理想情况下我有另一个建议。我的建议是以块的形式下载文件:现在我从1开始下载到开头。它开始时具有良好的下载速度,但随着越来越多的人开始下载,它会减慢我们所有人的速度。我想以较小的块分割下载,然后同时启动所有单独的下载。我做了一个例子: enter image description here

这里我有8个起点,这意味着我最终会得到8个部分的zip文件,然后我需要在下载完成后重新组合到一个文件。这甚至是可能的,我将如何处理这个解决方案?如果我能做到这一点,我将能够在大约10-15分钟内完成整个下载,我不必等待额外3-4小时的下载失败,然后不得不重新开始下载。

目前我使用网络客户端下载ftp文件,因为所有其他方法都无法完成下载,因为文件大于2,4 GB。

Private wc As New WebClient()
wc.DownloadFileAsync(New Uri("ftp://user:password@ip/FOLDER/" & FILENAME), downloadPath & FILENAME)

0 个答案:

没有答案