如何生成文件然后使用Heroku进行压缩/压缩?

时间:2010-10-28 17:31:34

标签: ruby-on-rails compression amazon-s3 heroku

我想做the reverse of this.

而不是解压缩并将集合文件添加到S3我想要

根据用户的要求:

  1. 生成一堆xml文件
  2. 使用一些图像压缩xml文件(在s3上托管预先存在的图像)
  3. 下载zip
  4. 有人知道这样做的好方法吗?我认为我可以在普通机器上管理这个没问题,但是Heroku在某种程度上使它有一个只读文件系统。

1 个答案:

答案 0 :(得分:4)

来自read-only filesystem上的heroku文档:

  

有两个可写的目录:./ tmp和./log(在你的应用程序根目录下)。如果您希望在请求期间暂时删除文件,可以写入#{RAILS_ROOT} / tmp / myfile _#{Process.pid}等文件名。无法保证此文件将在后续请求中存在(尽管可能是这样),因此不应将其用于任何类型的永久存储。

您应该可以非常轻松地将生成的xml文件写入tmp/并跟踪名称,下载并将s3文件写入同一目录,并且(可能?)调用zip命令当输出在tmp/时,然后使用正确的mime类型将文件提供给浏览器以提示下载。我只关心文件大小有多大以及heroku是否对tmp目录中允许的内容没有文档限制。特别是因为您只在一次请求期间执行此操作以进行一次性下载,我认为您很有可能能够执行此操作。

编辑:如果您想避免调用系统命令,那么可能可以使用类似RubyZip的内容来创建您的zip文件。