而不是解压缩并将集合文件添加到S3我想要
根据用户的要求:
有人知道这样做的好方法吗?我认为我可以在普通机器上管理这个没问题,但是Heroku在某种程度上使它有一个只读文件系统。
答案 0 :(得分:4)
来自read-only filesystem上的heroku文档:
有两个可写的目录:./ tmp和./log(在你的应用程序根目录下)。如果您希望在请求期间暂时删除文件,可以写入#{RAILS_ROOT} / tmp / myfile _#{Process.pid}等文件名。无法保证此文件将在后续请求中存在(尽管可能是这样),因此不应将其用于任何类型的永久存储。
您应该可以非常轻松地将生成的xml文件写入tmp/
并跟踪名称,下载并将s3文件写入同一目录,并且(可能?)调用zip命令当输出在tmp/
时,然后使用正确的mime类型将文件提供给浏览器以提示下载。我只关心文件大小有多大以及heroku是否对tmp目录中允许的内容没有文档限制。特别是因为您只在一次请求期间执行此操作以进行一次性下载,我认为您很有可能能够执行此操作。
编辑:如果您想避免调用系统命令,那么可能可以使用类似RubyZip的内容来创建您的zip文件。