【发布时间】:2010-12-10 04:51:16
【问题描述】:
我有一个关于托管大型动态生成资产和Heroku 的问题。
我的应用将提供其基础数据子集的批量下载,其中包含每 24 小时生成一次的大文件 (>100 MB)。如果我在服务器上运行,我只需将文件写入公共目录即可。
但据我了解,这对于 Heroku 是不可能的。可以写入 /tmp 目录,但保证 seems to be defined 文件的生命周期是一个请求-响应周期,而不是后台作业。
我想使用 S3 来托管下载文件。 S3 gem 确实支持流式上传,但仅适用于本地文件系统上已存在的文件。看起来需要预先知道内容大小,这在我的情况下是不可能的。
所以这看起来像是第 22 条规则。我试图避免在上传到 S3 时在内存中创建一个巨大的字符串,但 S3 仅支持对本地文件系统上已存在的文件进行流式上传。
给定一个我无法写入本地文件系统的 Rails 应用程序,如何在不在内存中创建大字符串的情况下提供每天生成的大文件?
【问题讨论】:
标签: ruby-on-rails streaming amazon-s3 heroku