2015-07-31 4 views
2

Я следую этому https://cloud.google.com/solutions/mobile/how-to-build-mobile-app-with-app-engine-backend-tutorial/ google официальному руководству, чтобы попытаться запустить пример кода Mobile Shopping Assistant на Mac OSX Yosemite. Он отлично работает на локальном dev_server, но не работает для загрузки данных csv в хранилище данных GAE.appengine_rpc.ClientLoginError: HTTP Error 403: Forbidden

При запуске из командной строки: appcfg.py upload_data --config_file bulkloader.yaml --url = Http: /// remote_api --filename places.csv --kind = Место -E

I я получаю эту ошибку из терминала:

Rovyns-MacBook-Pro:test Rovyn$ appcfg.py upload_data --config_file bulkloader.yaml --url=http://mobile-shopping-assistant-0000/remote_api --filename places.csv --kind=Place -e [email protected] 
 
12:47 PM Uploading data records. 
 
[INFO ] Logging to bulkloader-log-20150731.124745 
 
Traceback (most recent call last): 
 
    File "/usr/local/bin/appcfg.py", line 133, in <module> 
 
    run_file(__file__, globals()) 
 
    File "/usr/local/bin/appcfg.py", line 129, in run_file 
 
    execfile(_PATHS.script_file(script_name), globals_) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 5445, in <module> 
 
    main(sys.argv) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 5436, in main 
 
    result = AppCfgApp(argv).Run() 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 2997, in Run 
 
    self.action(self) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 5092, in __call__ 
 
    return method() 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 4895, in PerformUpload 
 
    run_fn(args) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appcfg.py", line 4777, in RunBulkloader 
 
    sys.exit(bulkloader.Run(arg_dict)) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4405, in Run 
 
    return _PerformBulkload(arg_dict) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4145, in _PerformBulkload 
 
    passin = arg_dict['passin'] 
 
KeyError: 'passin'

И, если запустить: bulkloader.py --url = http://mobile-shopping-assitant-0000.appspot.com/remote_api --kind = Место --filename = places.csv --config_fi ле = bulkloader.yaml

Ошибка:

[INFO ] Logging to bulkloader-log-20150731.122714 
 
[INFO ] Throttling transfers: 
 
[INFO ] Bandwidth: 250000 bytes/second 
 
[INFO ] HTTP connections: 8/second 
 
[INFO ] Entities inserted/fetched/modified: 20/second 
 
[INFO ] Batch Size: 10 
 
Please enter login credentials for mobile-shopping-assistant-0000.appspot.com 
 
Email: [email protected] 
 
Password for [email protected]: 
 
Traceback (most recent call last): 
 
    File "/usr/local/bin/bulkloader.py", line 133, in <module> 
 
    run_file(__file__, globals()) 
 
    File "/usr/local/bin/bulkloader.py", line 129, in run_file 
 
    execfile(_PATHS.script_file(script_name), globals_) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/bulkloader.py", line 4427, 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 4423, 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 4191, 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 4098, 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 660, 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 569, 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 422, in Send 
 
    self._Authenticate() 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 550, in _Authenticate 
 
    super(HttpRpcServer, self)._Authenticate() 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 293, in _Authenticate 
 
    auth_token = self._GetAuthToken(credentials[0], credentials[1]) 
 
    File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/appengine_rpc.py", line 245, in _GetAuthToken 
 
    e.headers, response_dict) 
 
google.appengine.tools.appengine_rpc.ClientLoginError: HTTP Error 403: Forbidden

Я очень уверен, что я очень тщательно и правильно следовали инструкциям из учебника, пожалуйста, помогите мне решить эту проблему, спасибо авансовый.

ответ

0

Там известная проблема с bulkloader (upload_data) как seen here. У вас есть два варианта:

а) Используйте bulkloader.py (прогон «bulkloader.py помощь» в командной строке для более подробной информации)

b) Используйте найденную работу, найденную here.

Вариант B будет самым легким, если вас интересует только учебник.