我有个需求是从iOS上传一个大约30MB左右的大文件到服务端,现在我就用了ASI的那个FormRequest,但是文件太大了,传起来超级慢,而且中间一旦出现问题,就得重新传输。
我现在想到两个优化的办法
- 分割文件,并行传输。就是把大文件切割成5部分,然后同时运行五个异步进程,然后服务端再合并。但我有个担心是,iPhone真的可以并行处理5个上传链接吗?而且会不会受带宽影响,效率还不如一个文件传。
- 另一个是断点续传,在时间上进行分割。但我没有找到什么好的断点方案,也没有思路,求一个思路或者方案。
断点的话,服务器纪录一个传递的文件偏移位置,每次请求从返回的head中读取偏移量,然后,客户端通过NSFileHandle通过偏移读取文件到buffer再发送到服务器。
对于1,你切割成5个做异步,不如一个文件做断点,切割还增加了客户端和服务器对文件操作的开销。