如何搭建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