GAE实现批量上传数据文件(XML和CSV格式)

如何搭建GAE开发环境我就懒得说了,如果连环境都不会搭建,那么研究数据上传也没有什么意义。

我开发的时候选择的是JAVA开发环境,很悲催,只支持JDO和JPA,后台根本不支持SQL,并且,没有直接导入数据文件的功能,我觉得GOOGLE这个方面做得太绝了。

好在对Python有研究,用Python实现数据批量上传,当然,参考了不少文档和资料。

废话不说。

第一步:开启remote_api

在你的工程下面的web.xml里面加入下面的Servlet(直接复制这段代码加进去即可)

<servlet>

<servlet-name>remoteapi</servlet-name>

<servlet-class>com.google.apphosting.utils.remoteapi.RemoteApiServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>remoteapi</servlet-name>

<url-pattern>/remote_api</url-pattern>

</servlet-mapping>

<security-constraint>

<web-resource-collection>

<web-resource-name>remoteapi</web-resource-name>

<url-pattern>/remote_api</url-pattern>

</web-resource-collection>

<auth-constraint>

<role-name>admin</role-name>

</auth-constraint>

</security-constraint>

第二步:下载Google App Engine SDK for Python。

这个问题,估计国内被墙,官方网址搓这里,如果不行,使用代理。

第三步:默认你已经安装了Python的情况下:

创建bulkloader.yaml文件,命令如下:(app_id改为你的app id,filename后面的文件名可以修改)

appcfg.py create_bulkloader_config --filename=bulkloader.yaml --url=http://<app_id>.appspot.com/remote_api

然后,在当前路径下找到bulkloader.yaml

我的xml格式为:

<RECORDS>

<RECORD>

<name>FUCK</name>

<name>YOU</name>

</RECORD>

<RECORD>

<name>FUCK</name>

<name>HER</name>

</RECORD>

</RECORDS>

把bulkloader.yaml修改如下:

connector: simplexml
  connector_options:
    xpath_to_nodes: /RECORDS/RECORD
    style: element_centric

千万记得:xpath_to_nodes: /RECORDS/RECORD,看清楚,这个中间冒号和/直接,有个空格!!!,不然直接报错!

另外,千万不要用tab键,要缩进,请用空格。

上传数据的命令如下:

appcfg.py upload_data --config_file=bulkloader.yaml --filename=data.xml --kind=App --url http://<app_id>.appspot.com/remote_api

下载数据的命令如下:

appcfg.py download_data --config_file=bulkloader.yaml --filename=play-store-apps.xml --kind=App --url http://<app_id>.appspot.com/remote_api

有什么疑问欢迎联系:lyneoma@gmail.com





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值