2013-05-28 43 views
1

App Engine SDK中的7.5至1.8现在我无法上传数据。 这是错误:错误301/404使用appcfg.py上传数据App Engine 1.8 for python

appcfg.py upload_data --url=http://192.168.1.106:8001/ --filename=database --num_threads=4 --rps_limit=500 
08:46 PM Uploading data records. 
[INFO ] Logging to bulkloader-log-20130528.204655 
[INFO ] Throttling transfers: 
[INFO ] Bandwidth: 250000 bytes/second 
[INFO ] HTTP connections: 8/second 
[INFO ] Entities inserted/fetched/modified: 500/second 
[INFO ] Batch Size: 10 
Error 301: --- begin server output --- 

--- end server output --- 

当我使用:/ _ah/remote_api的,这是错误。

appcfg.py upload_data --url=http://192.168.1.106:8001/_ah/remote_api --filename=database --num_threads=4 --rps_limit=500 
08:48 PM Uploading data records. 
[INFO ] Logging to bulkloader-log-20130528.204813 
[INFO ] Throttling transfers: 
[INFO ] Bandwidth: 250000 bytes/second 
[INFO ] HTTP connections: 8/second 
[INFO ] Entities inserted/fetched/modified: 500/second 
[INFO ] Batch Size: 10 
Error 404: --- begin server output --- 
404 Not Found 
The resource could not be found. 

--- end server output --- 

我已经与本地主机(使用默认配置),结果测试是完全一样的。 为什么1.8版本无法正常工作,但工作状态与1.7.5完全相同? 任何想法?

编辑: 我已经测试与bulkloader也使事情变得更容易,这是结果:

1)我已经倾倒在我的GAE APP使用此命令的数据库:

bulkloader.py --dump --url=<myapp> --filename=dumpBetaServer 

一切都很好。我有一个名为dumpBetaServer的转储结果。

2)现在,我尝试将此转储恢复到我的开发服务器:

bulkloader.py --restore --url=http://192.168.1.106:8001 --filename=dumpBetaServer --num_threads=1 

这是结果:

[INFO ] Logging to bulkloader-log-20130529.081227 
[INFO ] Throttling transfers: 
[INFO ] Bandwidth: 250000 bytes/second 
[INFO ] HTTP connections: 8/second 
[INFO ] Entities inserted/fetched/modified: 20/second 
[INFO ] Batch Size: 10 
Traceback (most recent call last): 
    File "/usr/local/bin/bulkloader.py", line 171, in <module> 
    run_file(__file__, globals()) 
    File "/usr/local/bin/bulkloader.py", line 167, in run_file 
    execfile(script_path, globals_) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4401, in <module> 
    sys.exit(main(sys.argv)) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4397, in main 
    return _PerformBulkload(arg_dict) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4165, in _PerformBulkload 
    throttle_class=throttle_class) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4072, in _GetRemoteAppId 
    rpc_server_factory=throttled_rpc_server_factory, secure=secure) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 659, in GetRemoteAppId 
    app_id = GetRemoteAppIdFromServer(server, path, rtok) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 568, in GetRemoteAppIdFromServer 
    response = server.Send(path, payload=None, **urlargs) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 393, in Send 
    f = self.opener.open(req) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 400, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 513, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 438, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 521, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 301: Moved Permanently 

当我和这个其他命令尝试:

bulkloader.py --restore --url=http://192.168.1.106:8001/_ah/remote_api --filename=dumpBetaServer --num_threads=1 

这就是结果:

[INFO ] Logging to bulkloader-log-20130529.081755 
[INFO ] Throttling transfers: 
[INFO ] Bandwidth: 250000 bytes/second 
[INFO ] HTTP connections: 8/second 
[INFO ] Entities inserted/fetched/modified: 20/second 
[INFO ] Batch Size: 10 
Traceback (most recent call last): 
    File "/usr/local/bin/bulkloader.py", line 171, in <module> 
    run_file(__file__, globals()) 
    File "/usr/local/bin/bulkloader.py", line 167, in run_file 
    execfile(script_path, globals_) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4401, in <module> 
    sys.exit(main(sys.argv)) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4397, in main 
    return _PerformBulkload(arg_dict) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4165, in _PerformBulkload 
    throttle_class=throttle_class) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4072, in _GetRemoteAppId 
    rpc_server_factory=throttled_rpc_server_factory, secure=secure) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 659, in GetRemoteAppId 
    app_id = GetRemoteAppIdFromServer(server, path, rtok) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/remote_api/remote_api_stub.py", line 568, in GetRemoteAppIdFromServer 
    response = server.Send(path, payload=None, **urlargs) 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 393, in Send 
    f = self.opener.open(req) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 400, in open 
    response = meth(req, response) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 513, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 438, in error 
    return self._call_chain(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 372, in _call_chain 
    result = func(*args) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 521, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 404: Not Found 

编辑2: 这是我的app.yaml

# For Google App Engine deployment, copy this file to app.yaml 
# and edit as required 
# See http://code.google.com/appengine/docs/python/config/appconfig.html 
# and http://web2py.com/book/default/chapter/11?search=app.yaml 

application: <myapp> 
version: 31 
api_version: 1 

# use this line for Python 2.5 
# 
runtime: python 

# use these lines for Python 2.7 
# upload app with: appcfg.py update web2py (where 'web2py' is web2py's root directory) 
# 
# runtime: python27 
# threadsafe: true # true for WSGI & concurrent requests (Python 2.7 only) 

default_expiration: "24h" # for static files 

handlers: 

- url: /(?P<a>.+?)/static/(?P<b>.+) 
    static_files: applications/\1/static/\2 
    upload: applications/(.+?)/static/(.+) 
    secure: always 

- url: /favicon.ico 
    static_files: applications/welcome/static/favicon.ico 
    upload: applications/welcome/static/favicon.ico 

- url: /robots.txt 
    static_files: applications/welcome/static/robots.txt 
    upload: applications/welcome/static/robots.txt 

- url: .* 
    script: gaehandler.py   # CGI 
# script: gaehandler.wsgiapp # WSGI (Python 2.7 only) 
    secure: optional 

admin_console: 
    pages: 
    - name: Appstats 
    url: /_ah/stats 


builtins: 
- remote_api: on 
- appstats: on 
- admin_redirect: on 
- deferred: on 

谢谢您的帮助!

+0

你可以显示你传递给devappserver命令的选项吗? –

+0

嗨塞巴斯蒂安,选项是:--admin_host = 192.168.1.106,没有更多的选项。 –

+0

我已经添加了更多信息:相同,但是这次使用了bulkloader。这一次我得到了同样的结果,但更“冗长”....我希望这可以帮助,我真的绝望与这个问题。 –

回答

2

新的devappserver在不同的端口启动不同的服务。在一般情况下,它将启动三项服务:您的应用程序(默认服务器),管理服务器(相当于appengine.google.com上的管理控制台)和API服务器。这些记录会显示类似:

INFO 2013-05-31 16:34:58,397 api_server.py:148] Starting API server at: http://localhost:48392

INFO 2013-05-31 16:34:58,408 dispatcher.py:96] Starting server "default" running at: http://localhost:8080

INFO 2013-05-31 16:34:58,420 admin_server.py:112] Starting admin server at: http://localhost:8000

你需要传递给bulkuploader的网址是您的应用程序(默认服务器)的一个。

+0

再次感谢您的帮助! –

相关问题