Skip to content

Latest commit

 

History

History
38 lines (21 loc) · 1.33 KB

multi_download.md

File metadata and controls

38 lines (21 loc) · 1.33 KB

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