以 zip 格式导出大量数据
Export large mount of data in a zip
我正在将一些数据从我的服务器导出到客户端。
它是一个 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
我正在使用 PaperClip
将我的视频附加到我的应用程序中。
有没有什么方法可以在不等待太久的情况下创建和上传 zip(带流?)?
您可以试试 zipline gem。它声称是 "Hacks on Hacks on Hacks" 所以请注意!不过看起来很好用,值得一试。
我正在将一些数据从我的服务器导出到客户端。
它是一个 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
我正在使用 PaperClip
将我的视频附加到我的应用程序中。
有没有什么方法可以在不等待太久的情况下创建和上传 zip(带流?)?
您可以试试 zipline gem。它声称是 "Hacks on Hacks on Hacks" 所以请注意!不过看起来很好用,值得一试。