android (一)ftp高效上传方法

一,简介

(一)ftp传输问题:

(1)单线程传输对大文件来说速度非常有限

(2)传输中断后需要重新开始效率很低

(3)上传文件到服务器时一次只能有一个端口操作,导致传输速效率低。

(二)因为项目需求开发一个SDK主要功能:

1.提供快速上传下载功能

2.提供上传图片视频缩略图

3.可以配置文件上传到服务器文件夹位置

4.可以配置上传的服务器地址端口账号等信息

5.可以更新文件信息

6.可以批量下载,上传,删除文件

7.可以模拟文件夹存储

8.实时更新传输进度和传输速度

。。。

今天我要分享的是如何提高ftp上传现在速度,这种方案不只用于ftp协议,其它协议也可以按照类似思路执行,在开发SDK之前我也查找了很多资料和开源项目,我这个思路也是在一些分享中找到的,但经过大量查询后发现大家都是只有思路没有一个完整的代码,经过一段时间努力我也是终于完整的实现了该方案所有代码开发,目前也已经接入到了几个开发的项目。

下面先介绍该方案思路:

该方案也称为切片上传下载,实际生就是将一个大文件切割成几个片段,每个片段用一个线程来传输等所有片段传输完成后再通过命令将所有片段按照之前切割的顺序拼接即可。这个思路其实很简单就是一个文件用几个线程同时传输,该方案的难点就在于如何切片,如何断点续传,如何拼接,如何控制整个批量传输。。。

如图所示:该图为上传结构

android (一)ftp高效上传方法_第1张图片

上传和下载思路相同,但上传时因为服务端ftp协议原因无法通过线程同时将多份同时写入服务器一个文件中,所以上传时需要将多份同时写道不同的文件中,等所有文件传输完成再先服务器发送合并命令将所有切割完成的文件按照切割的顺序将文件合并,等文件合并完成再将所有拆散文件删除保留合并文件,等所有工作完成表示一次上传也就结束了。

android (一)ftp高效上传方法_第2张图片

android (二)ftp高效下载方法:https://blog.csdn.net/zhuxingchong/article/details/87894996

具体代码实现代码待续。。。

 

 

 

你可能感兴趣的:(android)