2014-08-29 10 views
-2

在谷歌應用程序引擎啓動器中爲每次部署重新輸入密碼都浪費了大量時間。有沒有一種方法可以用文本文件來硬編碼電子郵件和密碼?我試着編輯appcfg.py,但沒用。我瞭解這種方法涉及的風險,但我仍然想知道。帶有文本文件的谷歌應用程序引擎啓動器的硬編碼密碼

+0

你絕對不應該硬編碼密碼到一個文件,如果該文件將在您的服務器上部署的(我沒有使用過的應用程序引擎我不知道該文件是否被部署)。 – IanAuld 2014-08-29 03:32:41

+0

我知道如果發生這種危險 – megatr0n 2014-08-29 03:43:21

回答

0

您可以直接不硬編碼密碼,但我做了這招附加密碼的電子郵件參數BAT文件的硬編碼密碼

必須備份YOURAPPENGINEURL /谷歌/ AppEngine上/工具/ appcfg.py。 然後查找該文件

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_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) 

在運行時該代碼解析電子郵件地址和密碼提示下面的代碼塊。

2.與下面的代碼塊

def GetUserCredentials(): 
    """Prompts the user for a username and password.""" 
    email = self.options.email 
    if email is None: 
    email = self.raw_input_fn('Email: ') 

    tmp=email.split(':') 
    email=tmp[0] 
    password=tmp[1] 

    return (email, password) 

然後保存下,appcfg文件替換該代碼塊。

3.現在你可以用下面的命令

appcfg.py --no_cookies [email protected]:YOURPASSWORD update ./ 

4.重要的事實是,你只能通過附加密碼以電子郵件更新應用硬編碼密碼。 app.cfg從不提示輸入密碼

+0

我得到沒有模塊命名谷歌導入錯誤。 – megatr0n 2014-08-29 08:54:24

+0

請檢查您的python代碼,並確保它不是 C:\ Program Files \ Google \ google_appengine \ appcfg.py。 實際文件是 C:\ Program Files \ Google \ google_appengine \ google \ appengine \ tools \ appcfg.py 這是我工作的appcfg.py文件。 http://www31.zippyshare.com/v/71228066/file.html – KyawLay 2014-09-03 03:18:48

1

請考慮使用--oauth2參數。這可能不適用於應用程序引擎啓動程序,但如果您要爲部署創建自定義bash腳本,它將毫無作用。您可以在this頁面閱讀更多內容。

如果您不想輸入登錄憑據,則可以改爲使用 OAuth2令牌。此令牌可讓您訪問App Engine,但不會向您的Google帳戶的其他部分使用 ;如果您的Google帳戶使用 雙因素身份驗證,您會發現這非常方便。您可以存儲此令牌以永久登錄此計算機。

如果你是崇高的文本用戶可以添加以下代碼到你的項目配置文件,以便能夠與像CMD + B或CTRL + B.熱鍵部署我敢肯定,它很容易爲大多數主要做代碼編輯器。

{ 
    "build_systems": 
    [ 
    { 
     "name": "App Engine Deploy", 
     "cmd": ["cd $project_path; appcfg.py --oauth2 update ."], 
     "shell": true 
    } 
    ] 
} 
+0

我正在考慮用熱鍵來做到這一點,但仍然會從啓動程序中獲取惱人的提示。我現在沒有選擇,所以我要使用我在這裏發現的「autoit」方法http://stackoverflow.com/questions/17527767/scripting-gae-launcher-with-autoit。這是現在正在工作,它會做的。 – megatr0n 2014-08-30 00:19:08

-1

我決定和第三方一起討論這個問題;利用「的AutoIt」:

感謝馬特此

Local $sLauncherPath = "C:\Program Files\Google\google_appengine\launcher\GoogleAppEngineLauncher.exe" 
Local $iPid = Run($sLauncherPath) 

Local $hWin 
While ProcessExists($iPid) 
$hWin = WinWait("Deploy Application to Google", "", 1) 

If $hWin And WinGetProcess($hWin) = $iPid Then 
    ControlSetText($hWin, "", "Edit1", "[email protected]") 
    ControlSetText($hWin, "", "Edit2", "MyPassword123") 

    ControlClick($hWin, "", "Button2") 

    WinWaitClose($hWin) 
EndIf 
WEnd 
相關問題