ruby-on-rails – 如何仅在内存中修改zip文件?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – 如何仅在内存中修改zip文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 Ruby应用程序,我需要修改现有的zip文件.

我想在内存中构建zip文件并流回字节而无需将文件写入文件系统.如果我最终在Heroku上托管这个,我不认为我可以写入文件系统.有谁知道这样做的方法

我看了Zip::ZipFile,但看起来总是想写入文件系统.我认为“基于java实现”我将能够获得压缩文件的字节,你可以在java中做,但我没有看到这样做的方法.

编辑:

我要问的基本上与此相同,但对于Ruby而不是Python:
Function to create in-memory zip file and return as http response

解决方法

有同样的问题,通过关闭文件并读取数据并将其作为send_data流式传输来实现它

然后发现另一个在heroku上工作正常的库,可以处理内存缓冲区:它是zipruby(不是rubyzip).

buffer = ''
Zip::Archive.open_buffer(buffer,Zip::CREATE) do |archive|
  files.each do |wood,report|
    title = wood.abbreviation+".txt"
    archive.add_buffer(title,report);
  end
end
file_name = "dimter_#{@offer.customerName}_#{Time.now.strftime("%m%d%Y_%H%M")}.zip"
send_data buffer,:type => 'application/zip',:disposition => 'attachment',:filename => file_name
原文链接:https://www.f2er.com/ruby/265197.html

猜你在找的Ruby相关文章