在Heroku(Rails)上创建文件时遇到问题
所以我有一个用户模型,在用户注册后,我需要生成一个包含一些特定用户信息的文件。 Heroku不允许我这样做。 除了生成文件并将其写入S3存储桶并从那里引用它之外,还有其他选择吗?
Heroku的文件系统是只读的。 唯一的例外是tmp目录,但那是暂时的。 S3是一种常见的解决方案。 另一种可能性是将“文件”保存到数据库中(在迁移中使用“文本”列)。 您还可以使用某些文档存储,例如CouchDB或MongoDB,并将“文件”存储在那里。 Couch和Mongo有几个Heroku附加组件甚至提供免费套餐。
在Cedar堆栈上,文件系统是短暂的,这意味着文件系统仅在dyno的持续时间内存在(这是一个未知且不可预测的时间量)。
在较旧的堆栈上,只有/ tmp是可写的,并且再次是短暂的。
因此,要生成文件并将其导出,您需要考虑如何交付文件。
如果以后再下载,您是否可以随时从数据库中生成文件(从而节省了写入文件的需要)。
如果现在要下载,请将其流回最终用户。
它是出口到S3,做到这一点。
- Ruby 2.2在Heroku上有内存问题吗?
- ActiveRecord :: StatementInvalid:PG ::错误:错误:无法在Heroku中的只读事务错误中执行UPDATE
- Rails 4 – 如何在开发中使用sqlite3和使用Heroku生成PostgreSQL
- 将redis部署到heroku无法连接
- 从Heroku通过SSH隧道连接远程数据库?
- Favicon显示在本地rails上,而不是托管应用程序上
- 在heroku雪松堆栈上部署sinatra app(使用config.ru)
- 升级到Rails 4后,postgresql服务器上的内存泄漏
- Heroku和Rails:如何将utf-8设置为默认编码