2010-06-09 2 views
3

Github에서 오픈 소스로 파이썬 프로젝트를 만들고 싶지만 배포해서는 안되는 API 키가 있습니다.
"푸시"가 리포에 커밋 될 때마다 키를 제거하는 것보다 나은 점이 있습니다.공개 키드 저장소에서 파이썬 응용 프로그램을 버전 관리 할 때 비공개 API 키를 보호하는 올바른 방법

상상 단순화 foomodule.py :

import urllib2 
API_KEY = 'XXXXXXXXX' 
urllib2.urlopen("http://example.com/foo?id=123%s" % API_KEY).read() 

내가 뭘 생각하고 있어요 것은 :

  1. 이동 foomodule.py에 가져 오기 두 번째 key.py 모듈의 API_KEY; 그러면 .gitignore 파일에 key.py을 추가합니다.

  2. 1과 동일

    하지만 ConfigParser

당신이이 시나리오를 처리 할 수있는 좋은 프로그래밍 방법을 알고 계십니까 사용하고 계십니까?

답변

1

는 버전 템플릿 key_template.py 있습니다. 버전 제어 소프트웨어에서 key.py을 무시하십시오. 파이썬 파일에 보관하거나 ConfigParser을 사용하면 실제로 문제가되지 않습니다.

기존의 key.py 파일로 업데이트시 자동으로 병합 될 수 있습니다.

+0

음, 이해가 안되네. 어떤 핵심 파일을 foomodule.py로 가져 옵니까? – systempuntoout

+0

@system :'key.py' – SilentGhost

+0

@Silent 그래서 비어있는 값으로 key.py를 체크 아웃 한 다음 버전 제어에서 무시 하시겠습니까? – systempuntoout

1

한 가지 방법은 인터페이스의 명시적인 부분으로 만드는 것입니다. 예를 들어, 객체 생성자에 대한 인수로 지정합니다. 또는 클라이언트가 클래스를 확장하고 메서드를 제공하여 키를 반환하도록 요구할 수도 있습니다. 모듈을 사용하려면 먼저 모듈을 편집해야합니다.

domain = 'example.com' 
API_KEY = 

가 로컬 컴퓨터에 체크 아웃 (예 : API_KEY 등) 민감한 필드를 작성하고 key.py로 저장 :

관련 문제