go语言发开的并行下载器
1、WaitGroup 那段用法没太看懂
2、先下载每一块到硬盘,然后再全部读取到内存组合成一个大文件,然后再写回到硬盘,这个过程是否可以优化一下? 考虑这样一个场景:下载一个10G的大文件,每个分片 10M,那得生成多少个临时文件,然后还要全部删除,这样性能肯定不行,这块可以参考下别的程序 例如Bittorrent软件是如何做的?
3、有些服务器不支持 partial request 可以检查返回的头部信息查看是否支持分段请求,如果不支持,咱这个代码就没法工作了 https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
4、这个项目有点类似Mac下的 FDM,FreeDownloadManager,可以参考一下这个项目是怎么实现的
5、添加一些新特性:
- 每个文件块下载的进度
- 除了支持 http,是否可以支持其他协议?
- 根据文件大小合理分配协程数?
- ........
6、支持使用代理下载
7、支持从命令行传入url参数,或者从配置文件中读取?这个怎么感觉有点像 curl 和 wget 了?
8、支持显示下载速度,多个协程下载怎么计算下载速度?
问题: 1、可以并行下载视频吗? 2、如何编写测试代码? 3、如何编写一个http服务器支持 partical request