在 Github 中隐藏 API 密钥/文件,但不隐藏 Heroku
Hide API key / files in Github but not Heroku
我制作了一个使用 API 键的小型 Web 应用程序。
如果我为它创建一个单独的文件并将其添加到 .gitignore
,将其推送到 GitHub,然后执行 git push heroku master
,我不认为 API 密钥包含在站点中。
如何在 Heroku 上包含一个带有 API 键但没有 GitHub 的文件?
我正在使用 Node JS 和 Express。
您不能忽略文件并将其推送到 GitHub,因为那样需要提交它。 Git 的忽略系统只会阻止文件被跟踪。如果你提交了,它就不会再被忽略了。
不是从文件中加载它,而是从 Heroku 的 recommended best practice 环境中提取 API 密钥。检索此值的具体方式取决于您使用的语言和可能的框架,但您可以使用 heroku config
设置它,例如
heroku config:set API_KEY=some-key
这只是设置了一个环境变量,因此如果您搜索“您的语言读取环境变量”,您应该会找到有关如何读取该值的良好文档。 Python 示例可能看起来像
import os
api_key = os.getenv("API_KEY", "optional-default")
我制作了一个使用 API 键的小型 Web 应用程序。
如果我为它创建一个单独的文件并将其添加到 .gitignore
,将其推送到 GitHub,然后执行 git push heroku master
,我不认为 API 密钥包含在站点中。
如何在 Heroku 上包含一个带有 API 键但没有 GitHub 的文件?
我正在使用 Node JS 和 Express。
您不能忽略文件并将其推送到 GitHub,因为那样需要提交它。 Git 的忽略系统只会阻止文件被跟踪。如果你提交了,它就不会再被忽略了。
不是从文件中加载它,而是从 Heroku 的 recommended best practice 环境中提取 API 密钥。检索此值的具体方式取决于您使用的语言和可能的框架,但您可以使用 heroku config
设置它,例如
heroku config:set API_KEY=some-key
这只是设置了一个环境变量,因此如果您搜索“您的语言读取环境变量”,您应该会找到有关如何读取该值的良好文档。 Python 示例可能看起来像
import os
api_key = os.getenv("API_KEY", "optional-default")