【发布时间】:2014-03-18 19:23:18
【问题描述】:
我有一个本地 .csv 文件,其中包含更新的用户数据,我想在生产环境中运行一个简单的一次性脚本(在 Heroku、Rails 4 应用程序上)。它是开源的,所以我不能只在 repo 中包含文件而不暴露数据。我希望能够从 CLI 中做到这一点,但似乎无法弄清楚。
可能有更好的解决方案,但我一直在尝试将文件的内容(不是很大)设置为 Heroku 上的环境变量,但没有成功。我的 Bash 技能很弱...
$ heroku config:set MY_CSV=<./my_local_csv_path.csv
没有用——它不会设置任何东西。 (运行$ heroku config 显示环境变量为空白——MY_CSV:)。
有没有更好的方法让 Heroku 上的脚本可以访问这个 .csv 文件?我怀疑这与仅从 Heroku 控制台访问本地文件系统类似的问题。
【问题讨论】:
-
为什么不能直接上传文件?我不确定开源与它有什么关系。
-
@mipadi 我假设您的意思是将文件包含在存储库中,在这种情况下敏感的用户数据将被暴露。是否有另一种方法可以将文件上传到 Heroku 而不将其包含在 repo 中?
-
如果敏感数据上传到 Heroku,为什么不把它放在 repo 中会提高安全性?
-
您可以随时将其上传到 S3 或其他在线存储。
-
这需要自动化到什么程度?假设您确实是指一次,那么在 Heroku 上启动 Rails 控制台似乎是显而易见且简单的解决方案。在某处上传 CSV,运行您的工作(从网络中提取 CSV),删除 CSV。完毕。或者,调整您的脚本,使 MY_CSV 成为一个 URL,并让脚本抓取它。
标签: ruby-on-rails bash heroku