在Heroku上存储私人文件

时间:2016-01-27 08:36:44

标签: ruby ruby-on-rails-4 heroku amazon-s3 apple-push-notifications

我这里有一个与在heroku上存储私人文件相关的场景。

我需要在heroku应用程序中存储私有文件(用于向IOS设备发送推送通知的证书和密钥)(使用Cedar堆栈),我可以通过git将这些文件推送到heroku服务器但是在git上存储并不安全是私人的。因此,我希望将这些文件的副本(SCP)保存到heroku服务器,但heroku不允许传入连接并将这些文件存储在S3存储桶上不是一个很好的解决方案,因为从S3存储桶获取文件需要一些时间,这会增加在循环中发送每个推送通知。

我找不到找到适合这种情况的解决方案。 gem https://github.com/NicosKaralis/pushmeup接受私有文件作为文件对象或字符串(指出服务器上文件的路径)。 Heroku允许设置可在环境中使用但不能在文件中使用的配置变量(仅字符串)。

有人可以在这个场景中建议我一些解决方法,谢谢。

2 个答案:

答案 0 :(得分:3)

您无法在Heroku中使用文件系统,因此您需要一个不同的存储系统。

您可以使用Amazon S3等云系统存储,并加密连接和传输的数据,以确保信息保持私密。使用基于内存的缓存系统(例如memcached)可以最小化延迟。

另一种方法是将数据存储在数据库中,作为二进制信息。您可以使用相同的应用程序数据库,也可以使用专门为此设计的数据库。

答案 1 :(得分:0)

您应该考虑使用一些外部存储服务,因为您无法在Heroku上存储文件。

Using AWS S3 to Store Static Assets and File Uploads