在Heroku(Rails)上创建文件时遇到问题

时间:2012-02-01 19:13:41

标签: ruby-on-rails heroku

所以我有一个用户模型,在用户注册后,我需要生成一个包含一些特定用户信息的文件。 Heroku不允许我这样做。除了生成文件并将其写入S3存储桶并从那里引用它之外,还有其他选择。

2 个答案:

答案 0 :(得分:2)

Heroku的文件系统是只读的。唯一的例外是tmp目录,但那是暂时的。 S3是一种常见的解决方案。另一种可能是将“文件”保存到数据库(在迁移中使用“文本”列)。您还可以使用某些文档存储,例如CouchDB或MongoDB,并将“文件”存储在那里。 Couch和Mongo有几个Heroku附加组件,甚至提供免费套餐。

答案 1 :(得分:1)

在Cedar堆栈上,文件系统是短暂的,这意味着文件系统仅在dyno的持续时间内存在(这是一个未知且不可预测的时间量)。

在较旧的堆栈中,只有/ tmp是可写的,并且再次是短暂的。

因此,要生成文件并将其导出,您需要考虑如何传送文件。

如果以后再下载,您是否可以随时从数据库中生成文件(从而节省了写入文件的需要)。

如果现在要下载,请将其流回最终用户。

它是为了导出到S3,那样做。