Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 以zip格式导出大量数据_Ruby On Rails_Ruby_Zip_Export - Fatal编程技术网

Ruby on rails 以zip格式导出大量数据

Ruby on rails 以zip格式导出大量数据,ruby-on-rails,ruby,zip,export,Ruby On Rails,Ruby,Zip,Export,我正在将一些数据从服务器导出到客户端 这是一个zip存档,但当数据量太大时:超时 #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存档,但当数据量太大时:超时

#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
我正在使用
回形针
将我的视频附加到我的应用程序上


有没有办法创建和上传zip(带流?)而不用等待太长时间

你可以试试这个。它自称是“黑客对黑客对黑客”,所以当心!看起来很容易使用,值得一试。

你能公布准确的错误吗?你的客户是什么?S3?我认为解决这个问题的一个好办法是使用redis和sidekiq或resque将构建zip文件的过程放入一个队列中,我刚刚发现了这个过程并对其进行了测试。在我的测试服务器上,这太棒了。谢谢你的时间。它正在工作,但有一个问题没有直接联系到这个宝石,我张贴。