首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

google app engine札记

2012-08-16 
google app engine笔记1 创建应用的时候需要手机短信验证码,记得在手机号前面加上86.2 安装google eclipse

google app engine笔记

1 创建应用的时候需要手机短信验证码,记得在手机号前面加上86.

2 安装google eclipse插件,最好是通过market安装,安装过程巨慢,需要耐心

3 由于dns被墙,需要绑定host方可访问:http://big-orange.appsp0t.com

只需ping 出www.google.cn的ip进行绑定即可

?

?

203.208.46.242 big-orange.appspot.com?

203.208.46.242 picasaweb.google.com

203.208.46.242 docs.google.com

?

4 文件上传可以考虑存储在gae默认提供的datastore的blob字段中。(独立一台作为文件服务器)

参考?http://www.ibm.com/developerworks/cn/opensource/os-cn-gaeflupl/

http://www.uml.org.cn/sjjm/201204054.asp(good)

今天尝试spring mvc版的文件上传功能,很不容易啊。spring mvc自带的文件上传请求解析器依赖于apache common fileupload,而fileupload做解析的时候用到了rmi。rmi是gae环境下禁用的类。所以这边需要自定义的文件上传解析器,刚好有个开源项目可以满足需求?https://github.com/pjesi/springextras,需要引入其中的两个类

?

  • StreamingMultipartResolver:对 request 中的内容进行处理,比如设置上传文件大小的最大值、编码等;
  • StreamingMultipartFile:这就是 type=file 的输入框中提交的文件,其中包含了文件名、文件大小以及文件内容的字节数组。
  • 实践

    ?

    ?

    ?

    5 静态文件,和样式文件,可以考虑放到另外一台gae应用上。(独立一台作为静态文件服务器)

    ?

    6 图片可以考虑使用https://picasaweb.google.com免费图片空间,或者baidu的http://hi.baidu.com/hill007299/albumcreate/multipicture/album

    参考?http://jerryllx.iteye.com/blog/444057

    http://www.guan8.net/Java/517220.html

    实践证明用picasa是靠谱的

    代码

    ?

    ?

    打印图片链接http://lh4.ggpht.com/-8rpAseX3DrU/T9MBqQCn7YI/AAAAAAAAABU/PicJHg4sea8/longji.jpg

    一个账号有1G的免费空间,可以考虑多申请几个账号,图片随机存储在不同账号上。

    通过这个可以拿到相册id(albumid)

    http://picasaweb.google.com/data/feed/api/user/hill007299@126.com?kind=album

    ?

    (使用http://code.google.com/apis/gdata/?,因为它依赖google的核心库,需要同时下载http://code.google.com/p/guava-libraries/,然后把jar导入eclipse)

    7 全文检索功能

    最新版本的已经提供

    http://www.caijixia.net/xingyezixun/2012052551449.html

    https://developers.google.com/appengine/docs/java/search/overview

    ?

    ?

    public class DefaultItemManager implements ItemManager {PersistenceManager persistenceManager = JDOHelper.getPersistenceManagerFactory("transactions-optional").getPersistenceManager();CacheService cacheService;String prefix = "ITEM_";@Overridepublic ItemDO getItemDOById(long id) {try {String key = prefix + id;ItemDO itemDO = (ItemDO) cacheService.get(key);if (itemDO != null) {return itemDO;}itemDO = persistenceManager.getObjectById(ItemDO.class, id);if (itemDO != null) {cacheService.put(key, itemDO, 1000);}return itemDO;} catch (Exception e) {e.printStackTrace();return null;}}@Overridepublic boolean addItemDO(ItemDO itemDO) {persistenceManager.makePersistent(itemDO);String key = prefix + itemDO.getId();cacheService.delete(key);return true;}@Overridepublic List<ItemDO> getItemDOsByQuery() {return null;}public void setCacheService(CacheService cacheService) {this.cacheService = cacheService;}}

    ?

热点排行