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

dig*_*tie 5 compression ruby-on-rails heroku amazon-s3

我有点想要反过来这样.

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

根据用户的要求:

  1. 生成一堆xml文件
  2. 使用一些图像压缩xml文件(在s3上托管预先存在的图像)
  3. 下载zip

有人知道这样做的好方法吗?我想我可以正常的机器上管理这个没有问题,但在的Heroku,它有一个只读文件系统有些复杂的事情.

Bre*_*der 4

来自只读文件系统的heroku文档:

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

您应该能够非常轻松地将生成的 xml 文件写入tmp/并跟踪名称,下载 s3 文件并将其写入同一目录,并且(也许?)只要输出位于 中,就调用 zip 命令tmp/,然后提供服务使用正确的 MIME 类型将文件发送到浏览器以提示下载。我只关心文件大小有多大,以及heroku 是否对 tmp 目录中允许的内容有未记录的限制。特别是因为您仅在单个请求期间执行此操作以进行一次性下载,所以我认为您很有可能能够做到这一点。

编辑:环顾四周,如果您想避免调用系统命令,您也许可以使用RubyZip之类的工具来创建 zip 文件。