我想制作GAE应用程序的客户端版本,用于存储在线版本的确切数据。(myapp.appspot.com)如果我可以使用sdk代替,是否有任何库或工具可以在线同步和sdk版本?我尝试使用bulkloader,但我无法将下载的数据加载到本地SDK?请帮忙。
答案 0 :(得分:29)
如this article中所述(链接已更新,感谢Zied Hamdi)
您只需启用远程api
即可builtins:
- remote_api: on
更新您的应用程序,然后运行以下命令:
appcfg.py download_data -A s~YOUR_APP_NAME --url=http://YOUR_APP_NAME.appspot.com/_ah/remote_api/ --filename=data.csv
appcfg.py --url=http://localhost:8080/_ah/remote_api/ --filename=data.csv upload_data .
在最新的AppEngine SDK上编辑2016年4月12日之后:
以上适用于SDK 1.9.0及更高版本。但是对于depreciation of ClientLogin,上述操作会导致错误
03:13 PM Uploading data records.
[INFO ] Logging to bulkloader-log-20160909.151355
[INFO ] Throttling transfers:
[INFO ] Bandwidth: 250000 bytes/second
[INFO ] HTTP connections: 8/second
[INFO ] Entities inserted/fetched/modified: 20/second
[INFO ] Batch Size: 10
[INFO ] Opening database: bulkloader-progress-20160909.151355.sql3
2016-09-09 15:13:55,175 INFO client.py:578 Refreshing due to a 401 (attempt 1/2)
2016-09-09 15:13:55,176 INFO client.py:804 Refreshing access_token
2016-09-09 15:13:55,312 INFO client.py:578 Refreshing due to a 401 (attempt 2/2)
Recommended by Anssi here,我们可以直接使用API服务器而不会遇到此错误。对于典型的dev_appserver启动,您将获得以下输出
INFO 2016-09-09 19:27:11,662 sdk_update_checker.py:229] Checking for updates to the SDK.
INFO 2016-09-09 19:27:11,899 api_server.py:205] Starting API server at: http://localhost:52497
INFO 2016-09-09 19:27:11,905 dispatcher.py:197] Starting module "default" running at: http://localhost:8080
INFO 2016-09-09 19:27:11,918 admin_server.py:116] Starting admin server at: http://localhost:8000
而不是上面的上传使用API端口,在这种情况下
appcfg.py --url=http://localhost:52497/_ah/remote_api/ --filename=data.csv upload_data .
答案 1 :(得分:15)
有关如何下载和上传整个数据存储区的详细信息,请参阅the docs。只需从生产中批量下载,然后批量上传到本地数据存储区。
但请记住,本地数据存储不是为处理大量数据而设计的 - 您可能会遇到性能或内存问题。
答案 2 :(得分:2)