GAE 数据下载显示 datastore_errors.BadRequestError
我正在尝试使用官方说明
远程API已设置&我打电话:
appcfg.py download_data --application=appname --url=http://app.address.com/_ah/remote_api --filename=alldata.csv
连接已建立,系统要求我提供电子邮件和电话号码。密码,然后出现一条很长的痕迹,最后是这样的:
google.appengine.api.datastore_errors.BadRequestError:应用 s~appname 无法访问应用 appname 的数据
有什么想法吗?
I'm trying to download data from my Google App Engine app, using the official instructions
Remote API is set up & I call:
appcfg.py download_data --application=appname --url=http://app.address.com/_ah/remote_api --filename=alldata.csv
The connection is established, I'm being asked for my e-mail & password, and then a long trace appears ending up with this:
google.appengine.api.datastore_errors.BadRequestError: app s~appname cannot access app appname's data
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果使用高复制数据存储,请将传递给 --application 的值从
appname
更改为s~appname
。If using the high-replication datastore, change the value passed to --application from
appname
tos~appname
.发现问题 - 作为 URL,我给出了我自己的应用程序的域名,而不是 1.appname.appspot.com。
Found the problem - as an URL I was giving my own app's domain name instead of the 1.appname.appspot.com.
我遇到了同样的问题,但是当我尝试从自定义脚本使用远程 API 而不是 appcfg.py 的批量下载器时。
这个问题可能已在最新的 GAE SDK 版本中得到解决,但由于各种原因我仍在使用较旧的 1.7 版本。我在此错误报告中找到了答案:https://code.google。 com/p/googleappengine/issues/detail?id=4374
基本上,在调用ConfigureRemoteApi时,不要指定APP_ID参数(只需传递None)并通过主机参数指定您的应用程序ID,例如'myapp-hrd.appspot.com'。 ConfigureRemoteApi 将正确计算出您的应用程序 ID,并且不会添加导致此问题的“s~”。
I ran into this same issue, but when attempting to use the remote API from a custom script as opposed to appcfg.py's bulk downloader.
This issue may have been addressed in more recent GAE SDK releases, but for various reasons I'm still using the older 1.7 release. I found the answer in this bug report: https://code.google.com/p/googleappengine/issues/detail?id=4374
Basically, when calling ConfigureRemoteApi, don't specify the APP_ID argument (just pass None) and specify your app ID via the host argument, e.g. 'myapp-hrd.appspot.com'. ConfigureRemoteApi will figure out your app ID correctly and won't add the 's~' that causes this problem.