Как мне разрешить ошибку резервного копирования моего appspot? - PullRequest
2 голосов
/ 01 октября 2011

Я пытаюсь сделать резервную копию, но не получится:

2011-10-01 09:22:43.706 /remote_api 302 5ms 0cpu_ms 0kb

213.89.134.0 - - [01/Oct/2011:05:22:43 -0700] "GET /remote_api HTTP/1.1" 302 0 - - "montaoproject.appspot.com" ms=6 cpu_ms=0 api_cpu_ms=0 cpm_usd=0.000032

$ python ./appcfg.py download_data --application=montaoproject --url=http://montaoproject.appspot.com/remote_api --filename=montao.data
Downloading data records.
[INFO    ] Logging to bulkloader-log-20111001.122234
[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-20111001.122234.sql3
[INFO    ] Opening database: bulkloader-results-20111001.122234.sql3
[INFO    ] Connecting to montaoproject.appspot.com/remote_api
Please enter login credentials for montaoproject.appspot.com
Email: niklasro
Password for niklasro: 
[INFO    ] Authentication Failed

app.yaml:

- url: /remote_api
  script: remote_api.py

remote_api.py:

from google.appengine.ext.remote_api import handler
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

import re


MY_SECRET_KEY = 'thetopsecret'


cookie_re = re.compile('^"([^:]+):.*"$')


class ApiCallHandler(handler.ApiCallHandler):
    def CheckIsAdmin(self):
        login_cookie = self.request.cookies.get('dev_appserver_login', '')
        match = cookie_re.search(login_cookie)
        if (match and match.group(1) == MY_SECRET_KEY
            and 'X-appcfg-api-version' in self.request.headers):
            return True
        else:
            self.redirect('/_ah/login')
            return False


application = webapp.WSGIApplication([('.*', ApiCallHandler)])


def main():
    run_wsgi_app(application)


if __name__ == '__main__':
    main()

Обновление Состояние сервера 302, а метод в remote_api.py не достигнут:

2011-11-08 09:02:40.214 /remote_api?rtok=935015419683 302 12ms 0kb

213.89.134.0 - - [08/Nov/2011:03:02:40 -0800] "GET /remote_api?rtok=935015419683 HTTP/1.1" 302 0 - - "montaoproject.appspot.com" ms=13 cpu_ms=0 api_cpu_ms=0 cpm_usd=0.000026

Ответы [ 5 ]

2 голосов
/ 04 октября 2011

При использовании этого подхода, чтобы заставить удаленный API работать с открытым идентификатором (от http://blog.notdot.net/2010/06/Using-remote-api-with-OpenID-authentication),), я думаю, вам нужно указать секретный ключ (т. Е. «Thetopsecret») в качестве электронного письма при запросе (а затем просто нажать Enterпри запросе пароля).

1 голос
/ 14 октября 2011

[INFO ] Authentication Failed

Это не имеет ничего общего с ядром GAE, аутентификация не пройдена => либо ваш запрос на вход не выполнен, либо вы не предоставили правильные учетные данные

Вы работаете за прокси?https - проблема за прокси-сервером squid.

1 голос
/ 01 октября 2011

Если ваше приложение использует хранилище данных с высокой репликацией, тогда ваш App-ID будет 'montaoproject' (и, вероятно, должен быть в кавычках в командной строке? Это, конечно, не повредит ... ).

1 голос
/ 01 октября 2011

Используйте правильные учетные данные. niklasro не ваш адрес электронной почты.

0 голосов
/ 15 ноября 2011

MY_SECRET_KEY соответствует вашему логину, а не паролю.Вам не нужно на самом деле вводить пароль (просто нажмите Return).Поэтому, когда вы аутентифицируете использование:

Email: thetopsecret
Password for thetopsecret: (nothing)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...