22 2009

利用GAE做文件下载代理

由于培训基地的网络做了限制,导致一些文件不能下载,造成了很大的困扰。今天突然有了一个利用Google服务器代理文件下载的想法。关键代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
		String urlStr=req.getParameter("url");
		String filename=urlStr.substring(urlStr.lastIndexOf("/")+1);
		resp.setContentType("application/x-download");
		resp.addHeader("Content-Disposition","attachment;filename=" + java.net.URLEncoder.encode(filename,"UTF-8")); 
 
		URL url=new URL(urlStr);
		HttpURLConnection http=(HttpURLConnection) url.openConnection();
		http.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)");
		InputStream is=http.getInputStream();
		byte[] data=new byte[500];
		int n=is.read(data);
		OutputStream out=resp.getOutputStream();
		while(n>0){
			out.write(data,0,n);
			n=is.read(data);
		}
		is.close();
		out.close();

主要是利用HttpURLConnection 获取要下载的文件,然后再将获得的字节流输出。注意:下载大一点的文件时会抛出“ResponseTooLargeException”,估计可能是GAE限制,知道如何解决这个问题的朋友,可以给我留言。


9 2009

Google App Engine支持Java了!

Google App Engine开始支持Java了,一个振奋人心的消息,以后可以将自己写得Java Web程序放到GAE上了。

如何在Google App Engine上开发、部署Java程序:http://code.google.com/appengine/docs/java/gettingstarted/

刚刚下载完Google Plugin for Eclipse ,对于开发部署过程还需要仔细研究一下。