【问题标题】:How to Save My User Account and Password in Google App Engine Launcher?如何在 Google App Engine 启动器中保存我的用户帐户和密码?
【发布时间】:2011-03-01 02:33:02
【问题描述】:

我正在使用 Google App Engine Launcher 将我的应用部署到 GAE 服务器。有没有办法保存我的用户帐户和密码,这样我就不必在每次重新部署时都输入它了?

我仍处于使用 GAE 的学习阶段,因此当我每晚重新部署 15 次以上时,输入我的 16 个奇数字符的密码会很烦人。

【问题讨论】:

  • 也许您有部署的理由,但有一个本地服务器与 SDK。
  • 我重新部署以处理我的实时数据。我是唯一一个使用该应用程序的人,所以我并不会因为开发实时版本而冒太大风险。 =)
  • OT 仅供参考:您可以使用 python bulkloader 工具将实时数据下载到开发服务器。它甚至适用于 Java。
  • 我使用 AutoIT,效果很好。解决方案在这里:stackoverflow.com/questions/17527767/…

标签: google-app-engine


【解决方案1】:

您可以制作一个包含以下文本的 .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 文档,您不能将密码指定为命令行选项)

【讨论】:

  • 糟糕。顺便说一句,我使用的是 2.6,到目前为止一切正常。
  • @ZuzooVn 请更具体一些,您需要什么详细信息?
  • 你是我的英雄! “echo |”部分是天才! :D
  • 更安全的想法是打开双重身份验证并使用:appcfg.py --oauth2_refresh_token=token update yourapp/
【解决方案2】:

使用oauth 保存 OAuth2 令牌,这样您就无需不断重新输入密码。

【讨论】:

  • 我改变了答案,因为 oauth 是(两年后)目前的首选方法。 Oauth + bat 文件上传效果很好。
  • 这个答案缺乏关于如何将 OAuth 与 GAE 一起使用的实用建议
  • oauth 说明在以下部分:cloud.google.com/appengine/docs/python/tools/…
【解决方案3】:

接受的解决方案对我不起作用。使用管道确实

echo <password> | c:\python25\python.exe "C:\Program Files\Google\google_appengine\appcfg.py" --email=username --passin update <directory of app on your pc>

【讨论】:

    【解决方案4】:

    appcfg 已经为您完成了这项工作。根据文档:

    appcfg.py 从中获取应用程序 ID app.yaml 文件,并提示您输入 您的电子邮件地址和密码 谷歌帐户。成功后 使用您的帐户登录, appcfg.py 存储一个“cookie”,以便它 不需要提示输入密码 在随后的尝试中。

    如果您没有遇到这种情况,您可能想尝试删除任何 .appcfg* 配置文件。

    【讨论】:

    • cookie 在重启或闲置几个小时后被清除。
    • 在我的一台电脑上可以,在其他电脑上不行。我找不到任何.appcfg* 配置文件。
    【解决方案5】:

    其他提示和技巧:使用命令行如下:

    要让 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=email@gmail.com --password=xxxx
    

    参考:http://samalolo.blogspot.com/2009/04/appcfgpy-tweak-to-allow-passing.html

    【讨论】:

      【解决方案6】:

      我只是想对 Friar Broccoli 说声谢谢,这正是我想要的。为了澄清像我这样的其他初学者,我的最终批处理文件最终如下所示,

      c:\python27\pythonw.exe "C:\Program Files (x86)\Google\google_appengine\appcfg.py" --oauth2 update "C:\Users\[username]\[directory]\app.yaml"
      

      工作完美,希望这个解决方案更高。

      【讨论】:

      • 你是一个初学者,所以我假设你已经对此进行了研究,但是有没有一个很好的 GAE 公开演示项目,它不是非常过时,还包括诸如 bat 文件之类的东西上传?如果没有,我会做一个。
      【解决方案7】:

      对于 Windows 7,C:\Users\username\.appcfg_cookies 下的 .appcfg_cookies

      【讨论】:

        【解决方案8】:

        您可以编写一个执行appcfg.py 的命令行脚本来执行此操作。

        您可以通过--email= 命令行参数指定要使用的电子邮件。

        您可以使用--passin 参数从标准输入传递密码。

        【讨论】:

          【解决方案9】:

          这非常简单。只需将其放入批处理文件中:

          appcfg.py --oauth2  update  "X:\local\path\to\your\app.yaml\file" 
          

          第一次运行时,谷歌会进行身份验证,之后是自动的。

          【讨论】:

            猜你喜欢
            • 2012-09-02
            • 2012-10-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-02-15
            • 2018-02-08
            相关资源
            最近更新 更多