以zip格式导出大量数据

时间:2015-03-13 13:46:52

标签: ruby-on-rails ruby zip export

我将一些数据从我的服务器导出到客户端。

它是一个zip存档但是当数据量很大时:TimeOut!

#On my controller
def export
  filename = 'my_archive.zip'
  temp_file = Tempfile.new(filename)
  begin
    Zip::OutputStream.open(temp_file) { |zos| }
    Zip::File.open(temp_file.path, Zip::File::CREATE) do |zip|
      @videos.each do |v|
        video_file_name = v.title + '.mp4'
        zip.add(video_file_name, v.source.file.path(:original))
      end
    end
    zip_data = File.read(temp_file.path)
    send_data(zip_data, :type => 'application/zip', :filename => filename)
  ensure
    temp_file.close
    temp_file.unlink
  end
end

我正在使用PaperClip在我的应用上附加我的视频。

有没有办法在没有太长时间等待的情况下创建和上传zip(带流?)?

1 个答案:

答案 0 :(得分:0)

您可以尝试zipline gem。它声称是“黑客入侵黑客”,所以抬头!看起来很容易使用,值得一试。