在 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")