【发布时间】:2012-02-01 19:13:40
【问题描述】:
所以我有一个用户模型,在用户注册后,我需要生成一个包含一些特定用户信息的文件。 Heroku 不允许我这样做。除了生成文件并将其写入 S3 存储桶并从那里引用之外,还有其他选择吗?
【问题讨论】:
-
什么样的用户信息?这不是您可以存储在数据库中的东西吗?有关什么类型的信息以及您希望如何在您的应用中使用它的更多信息会很有帮助。
标签: ruby-on-rails heroku
所以我有一个用户模型,在用户注册后,我需要生成一个包含一些特定用户信息的文件。 Heroku 不允许我这样做。除了生成文件并将其写入 S3 存储桶并从那里引用之外,还有其他选择吗?
【问题讨论】:
标签: ruby-on-rails heroku
Heroku 的文件系统是只读的。唯一的例外是 tmp 目录,但那是暂时的。 S3 是一种常见的解决方案。另一种可能性是将“文件”保存到数据库中(在迁移中使用“文本”列)。您还可以使用一些文档存储,例如 CouchDB 或 MongoDB,并将您的“文件”存储在那里。有几个适用于 Couch 和 Mongo 的 Heroku 插件甚至提供免费层。
【讨论】:
在 Cedar 堆栈上,文件系统是短暂的,这意味着文件系统仅在 dyno 的持续时间内存在(这是一个未知且不可预测的时间量)。
在较旧的堆栈上,只有 /tmp 是可写的,而且是短暂的。
因此,要生成文件并将其导出,您需要考虑如何交付文件。
如果是以后下载,你可以随时从数据库中生成文件吗(这样就完全不用写文件了)。
如果现在要下载,请将其流式传输回给最终用户。
它是为了导出到 S3,这样做。
【讨论】: