加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 23:04:28 所属栏目:百科 来源:网络整理
导读:我有一个 Ruby应用程序,我需要修改现有的zip文件. 我想在内存中构建zip文件并流回字节而无需将文件写入文件系统.如果我最终在Heroku上托管这个,我不认为我可以写入文件系统.有谁知道这样做的方法? 我看了Zip::ZipFile,但看起来总是想写入文件系统.我认为“
我有一个 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读