我正在构建一个使用一些令牌和密钥来访问服务的系统,但是最好的存储位置在哪里?我想在不推送令牌的情况下推送到github。
然后我将其放入一个名为Constants.py的空白文件中,并在主python文件中创建一个导入Constants
Constants.py:
API_KEY_SERVICE = "ABC123ABC"
Main.py:
import Constants
service_key = Constants.API_KEY_SENDGRID
答案 0 :(得分:1)
您要尝试的是从代码中分离敏感信息的正确方法。您应该在constants.py
文件中包含.gitignore
,这将防止git跟踪该文件,从而不会将其推送到github。
有关.gitignore,请参阅:https://git-scm.com/docs/gitignore
答案 1 :(得分:1)
有几个选项:
将其存储在本地,正如 Sebastin Santy 指出的那样,将 constants.py 添加到您的 .gitignore 文件中。
如果您使用的是 conda 虚拟环境,请将其存储为环境变量。不存储虚拟环境;创建一个的要求在 requirements.txt 文件中。您可以在 conda documetation
中找到有关步骤的更多信息使用 OS module
如果您有多个环境变量,您可以考虑使用 decouple
如果您使用 AWS,您将希望使用自己的 IAM 在他们自己的区域中存储(将是第三方的)密钥。 AWS 推荐了两种方式。