Ответ 1
Используйте oauth, чтобы сохранить токен OAuth2, поэтому вам не нужно повторно вводить пароль.
Я использую Google App Engine Launcher для развертывания моего приложения на серверах GAE. Есть ли способ сохранить учетную запись пользователя и пароль, поэтому мне не нужно вводить его при каждом повторном развертывании?
Я все еще участвую в обучении с использованием GAE, поэтому при вводе моего 16-символьного пароля пароль становится утомительным, когда я перестраиваю 15+ раз за вечер.
Используйте oauth, чтобы сохранить токен OAuth2, поэтому вам не нужно повторно вводить пароль.
Вы можете создать файл .bat, который имеет следующий текст:
echo <password> | c:\python25\python.exe "C:\Program Files\Google\google_appengine\appcfg.py" --email=username --passin update <directory of app on your pc>
(Согласно данным GAE, вы не можете указать пароль как вариант командной строки)
Принятое решение не сработало для меня. Использование труб сделало
echo <password> | c:\python25\python.exe "C:\Program Files\Google\google_appengine\appcfg.py" --email=username --passin update <directory of app on your pc>
appcfg уже делает это за вас. В документах:
appcfg.py получает идентификатор приложения из файл app.yaml и предложит вам адрес электронной почты и пароль вашего Учетная запись Google. После успешного завершения войдите в свою учетную запись, appcfg.py хранит "cookie", чтобы он не требуется запрашивать пароль при последующих попытках.
Если это не происходит для вас, вы можете попробовать удалить любые файлы конфигурации .appcfg*
.
Другие советы и трюки: используя командную строку, как показано ниже:
Чтобы приложение appcfg.py могло принимать -password в командной строке, а не запрашивать его:
Изменить: * appengine/google_appengine/google/appengine/tools/appcfg.py *
добавить в раздел parser.add_option следующее:
parser.add_option("-p","--password", action="store", dest="password",
metavar="PASSWORD", default=None,
help="The password")
Затем измените функцию GetUserCredentials:
def GetUserCredentials():
"""Prompts the user for a username and password."""
email = self.options.email
if email is None:
email = self.raw_input_fn("Email: ")
password = self.options.password
if password is None:
password = self.raw_input_fn("Password: ")
# password_prompt = "Password for %s: " % email
# if self.options.passin:
# password = self.raw_input_fn(password_prompt)
# else:
# password = self.password_input_fn(password_prompt)
return (email, password)
Чтобы это, теперь вы можете позвонить:
appcfg.py update demos/guestbook [email protected] --password=xxxx
Ссылка: http://samalolo.blogspot.com/2009/04/appcfgpy-tweak-to-allow-passing.html
Я просто хотел поблагодарить Фраяра Брокколи, это именно то, что я искал. Чтобы уточнить для других новичков, как я, мой окончательный пакетный файл оказался следующим:
c:\python27\pythonw.exe "C:\Program Files (x86)\Google\google_appengine\appcfg.py" --oauth2 update "C:\Users\[username]\[directory]\app.yaml"
Отлично работает, желайте, чтобы это решение было выше.
Для окон 7,.appcfg_cookies в разделе C:\Users\имя_пользователя \.appcfg_cookies
Вы можете написать командную строку script, которая выполняет appcfg.py
, чтобы сделать это.
Вы можете указать адрес электронной почты для использования с параметром командной строки --email=
.
Вы можете передать пароль из stdin с помощью параметра --passin
.
Это удивительно просто. Просто поместите это в пакетный файл:
appcfg.py --oauth2 update "X:\local\path\to\your\app.yaml\file"
При первом запуске Google проверяет подлинность, после чего все автоматически.