Конфиденциальная информация GIT/Heroku

У меня есть проект django, развернутый в Heroku. Он использует python-instragram.

У меня есть «клиентский секрет» от клиента Instagram, который у меня есть. Я использую git/github для контроля версий.

Этот client_secret импортирован из неотслеживаемого файла, потому что я не хочу, чтобы он был в моем общедоступном репозитории github. Я делаю что-то вроде этого:

from core_keys import core_client_secret

CONFIG = {
'client_id': '83d1b794dfc24f5588378f88be67c586',
'client_secret': core_client_secret,
'redirect_uri': 'http://localhost:8515/oauth_callback'
}
api = client.InstagramAPI(**CONFIG)

Я добавил core_keys.py в .gitignore:

*/core_keys.py

Когда я развертываю приложение на героку, очевидно, что приложение не работает, потому что файл, содержащий client_secret, не был отправлен на героку, поскольку он находится в .gitignore.

Как я могу иметь этот файл на героку без необходимости частного репо, какой подход мне следует использовать?


person edu222    schedule 30.05.2013    source источник
comment
Я не очень разбираюсь в хероку, но нельзя ли как-нибудь файл запихнуть? В крайнем случае, получите его в пользовательском методе с POST   -  person loopbackbee    schedule 30.05.2013


Ответы (2)


Вы должны хранить секреты как переменные конфигурации в среде.

person friism    schedule 30.05.2013
comment
Да это идеально спасибо! Не могли бы вы привести пример того, как я могу передать эту переменную среды в файл Python? - person edu222; 30.05.2013
comment
Вам не нужно вставлять их в файл, просто прочитайте их из среды: stackoverflow.com/questions/5971312/ - person friism; 30.05.2013

В качестве справки, в итоге сделал это:

На терминале на моей машине разработки:

heroku config:set INSTAGRAMSECRET=00000FFFFF

В файле, где мне нужна среда var внутри Heroku:

import os
insta_secret = os.environ['INSTAGRAMSECRET']
person edu222    schedule 31.05.2013