2016-09-23 10 views
2

私は、Goで書かれたAppEngine Classicアプリケーションを持っています。その中で、私はコードレポにはないたくさんのキーがあります。AppEngine for Goを使用しているときに、キーをレポから外しておく方法は?

私はテスト目的のためにレポにデフォルトキーを持っていますが、プロダクションキーを秘密にしておきたいと思います。 .gitignoreファイルでリポジトリにアップロードしないファイルを指定することができます。しかし、これを行う最善の方法は、他の開発者がファイルファイルにアクセスせずにコードをビルドしてテストできるようにするためのものであるかどうかはわかりません。

キーを持つファイルが存在しないときにコードをコンパイルしてテストしている間に、レポからキーを保持する最も実際的な方法は何ですか?

+0

はオプションで保存し、データストアから鍵を読んでいますか?もしそうなら、それはあなたの問題を解決するだろう。 – icza

+0

@iczaデータストアは、秘密鍵にアクセスすべきではない多数の人々によって(データストアビューアを介して)読めるのでオプションではありません。 – JohnGB

答えて

1

他の人があなたのコードをテストすることができるようにrepoにデフォルトの(テスト)キーが必要だが、あなたの秘密鍵を秘密にしておく(レポから外れないようにする)ために、ソリューションを使って別々の2つのフォルダ1つはテストキー用、もう1つは秘密キー用です。

明らかに秘密鍵のフォルダは.gitignoreになる可能性があり(したがって、リポジトリからは除外されます)、実行時にロジックによってキーフォルダを決定できます。

最も簡単なロジックは、プライベートキーフォルダ(コンピュータにのみ存在する)を最初に探すことです。存在しない場合は、テストキーフォルダを実行します。

このロジックを盛り上げることができます。存在する場合でもcmdフラグまたはenv変数を使用して秘密鍵のフォルダをバイパスすることができます。プロダクション環境でプライベートキーフォルダのみを探すことも妥当です。

生産コードをダウンロードできることに注意してください。次のコマンドで:

appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir> 

コードとアプリケーションの所有者(複数可)をアップロードするだけ開発者がそれをダウンロードすることができます。

はこちらこのについての詳細情報を参照してください:Downloading Your Source Code

+0

ファイルシステムがないため、AppEngineのフォルダをどのように探すか。私はあなたの正確なソリューションを試してみましたが、通常はファイルやフォルダをチェックするgoコードを呼び出すときにエラーが発生します。 – JohnGB

+0

@ JohnGBファイルシステムがあります。あなたはそれを書くことができず、すべてを読むことはできませんが、あなたのアプリケーションの_application_ファイルを読むことができます。相対パスを使用する必要があります。詳しくは関連する質問を参照してください:[Go AppEngineでファイルを読み込む正しい方法](http://stackoverflow.com/questions/36717098/correct-way-to-read-file-in-go- appengine)と[私のサーバーの秘密鍵をGoogleアプリケーションエンジンに格納する方法は?](http://stackoverflow.com/questions/34629056/how-do-i-store-the-private-key-of-my -server-in-google-app-engine) – icza

+0

相対的なファイルパスは多くのことを説明してくれてありがとうございます。それが私の問題を解決します。 – JohnGB

関連する問題