百度网盘的大文件下载(通过浏览器来下载)是用什么技术实现的?

祥林会跟你远走高飞 发布于 2013/10/21 16:55
阅读 3K+
收藏 1

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

 

加载中
0
伟子啊
伟子啊
就是get的啊,它有一个code,是时时变的,这是他的算法,只有code和当前服务器匹配才能得到资源。
祥林会跟你远走高飞
祥林会跟你远走高飞
我是使用ftp协议下载,正常使用http下载百M以上的文件就会内存溢出,但是百度网盘这个明显都3百M了,他肯定不是使用FileUtils.readFileToByteArray(file) 然后把流输出到浏览器,请问他怎么做到的啊
0
狂飙的小蜗牛
狂飙的小蜗牛
插件调用客户端
祥林会跟你远走高飞
祥林会跟你远走高飞
能说的详细一点么,什么叫插件调用客户端啊。
0
欣儿
欣儿
大文件不行的,超过2g还是多少,必须得是百度云下才可以
祥林会跟你远走高飞
祥林会跟你远走高飞
没有超过2个G,你看我发的截图 300M左右的文件 就能用浏览器下载了。一会我截图给你看下。但是我用FileUtils.readFileToByteArray(file)下载不能超过100M的文件,所以我就不知道他怎么弄的。我用的ftp下载。
欣儿
欣儿
回复 @PYPlus :那 linux系统 用户下个几个G的就够得下啦
PYPlus
PYPlus
百度有判断用户的操作系统,通过HTTP包头判断.如果是linux系统,就浏览器下载
0
PYPlus
PYPlus
文件的下载,看HTTP的RFC文件就知道了,基本的下载功能很简单.如用C语言实现下载只要在HTTP响应报文添加必要的说明,然后read write就可以了
printf("Content-Type: application/octet-stream\r\n");
	printf("Content-Disposition: attachment; filename=%s\r\n\r\n",filename);
        while(readxxx)writexxx;
PYPlus
PYPlus
回复 @王鹏1989 : 这个跟HTTP协议本身无关,实际就是socket通信.上G都行
祥林会跟你远走高飞
祥林会跟你远走高飞
我没用http,我用的是ftp这个协议。http支持大文件么 百M以上的文件。
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部